java - 如何将数据从数据库传递到 Thymeleaf 模板?
问题描述
我想获取特定的用户并将其传递给 thymeleaf 模板。这就是我现在所拥有的。 这是我的用户模型
和榜样:
@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;
}
解决方案
推荐阅读
- ios - Codenameone 编译错误尝试编译 IOS(调试)并出现摄像头错误
- java - 如何在 Firebase recyclerview 上设置适配器?
- angular - Angular 4从单独的组件重新加载标题组件
- azure - Azure 表存储和触发函数
- excel - 为什么 keyDown(shift) 函数不适用于 Excel 自动化的 python pyautogui
- excel - 在列中找到一个字符串并返回并返回一个带有行号的数组
- c - 连接二进制数
- asp.net-mvc - MVC IPageList Paging 显示两个寻呼机控件
- azure - Windows 的容器组支持
- c++ - 具有嵌套依赖项的 CMake 2.8.12,导致多个“包含”