java - Spring Boot 注入失败
问题描述
我想将一个包含用户的类注入到新对象中。
@GetMapping
public String listTopic(Principal principal, Model model){
Optional<Users> user = usersService.findByUsername(principal.getName());
if (user.isPresent()){
Topics topic = new Topics();
topic.setUsers(user.get());
model.addAttribute("newTopic", topic);
model.addAttribute("topics", topicsService.listTopics());
return "forum/forum";
}
return "/error";
}
@PostMapping
public String addTopic(@Valid @ModelAttribute("newTopic") Topics topic, BindingResult bindingResult){
if(bindingResult.hasErrors()){
return "forum/forum";
}
topicsService.addTopic(topic);
System.out.println(topic);
return "redirect:/forum";
}
当我在设置用户 obect 或在 getmapping 部分添加属性后通过 sysout 时,它会向我显示确切的对象,但是当我想在 postmapping 中查看它时,它会抛出 nullpointerexception。
解决方案
您的模型是一个请求范围对象。每次请求后它都会丢失。您需要将此信息传递给通过同一会话中的不同请求而处于活动状态的会话对象
推荐阅读
- java - Spring Vault 无法访问 k/v 对
- python - 改进我对埃拉托色尼筛的实施
- bash - 是否可以为菜单完成定义完成规范?
- python - 使用硒我想刮掉这段文字
- reactjs - 在 componentDidmount 之前调用 ComponentWillUnmount
- docker - 使用 localhost 将 docker-gramex 容器中的 pandas 连接到在主机上运行的数据库
- python - Python Tkinter - 上传文件后启用按钮
- amazon-s3 - 使用 Kafka Connect S3 Sink 时从 S3 路径中删除主题名称
- mongodb - 即使返回错误,带有 mongodb 和 nexus 的 GQL-Prisma 也会写入 db
- firebase - GunDB 存储和超级对等选项