java如何将数据从数据库传递到模板?
我想获取特定的用户并将其传递给thymeleaf模板。 这就是我现在拥有的。 This is my User model
和榜样:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "role_id")
private int id;
@Column(name = "role")
private String role;
}
我的用户存储库:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByEmail(String email);
User findByUserName(String userName);
User findByRole(String role);
}
用户服务:
@Autowired
public UserService(UserRepository userRepository,
RoleRepository roleRepository,
BCryptPasswordEncoder bCryptPasswordEncoder) {
this.userRepository = userRepository;
this.roleRepository = roleRepository;
this.bCryptPasswordEncoder = bCryptPasswordEncoder;
}
public User findUserByEmail(String email) {
return userRepository.findByEmail(email);
}
public User findUserByUserName(String userName) {
return userRepository.findByUserName(userName);
}
public User findUserByRole(String role){
return userRepository.findByRole(role);
}
假设,我想让所有用户都扮演“餐厅”角色-
控制器:
@GetMapping(value="/donor/home")
public ModelAndView donorHome(){
ModelAndView modelAndView = new ModelAndView();
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User user = userService.findUserByUserName(auth.getName());
User user_res = userService.findUserByRole("Restaurant");
modelAndView.addObject("userName", "Welcome " + user.getUserName() + "/" + user.getFirstName() + " " + user.getLastName() + " (" + user.getEmail() + ")");
modelAndView.addObject("res", "user_res");
modelAndView.getModel();
modelAndView.setViewName("/donor/donor_home");
return modelAndView;
}
共 (0) 个答案