spring - 从当前页面获取属性
问题描述
任务控制器
@GetMapping("/admin/addTask")
public String task(String email, Model model, HttpSession session){
session.setAttribute("email",email);
model.addAttribute("task",new Task());
return "task";
}
@PostMapping("/admin/addTask")
public String addTask(@Valid Task task, BindingResult bindingResult,HttpSession session){
if(bindingResult.hasErrors()){
return "task";
}
String emailik = (String) session.getAttribute("email");
taskService.addTask(task,userService.findOne(emailik));
return "redirect:/admin/users";
}
@GetMapping("/admin/usertask")
public String getEmail(User email, Model model,HttpSession session){
model.addAttribute("task",taskService.findUserTask(email));
model.addAttribute("emaail",session.getAttribute("email"));
return "usertasklist";
}
用户列表控制器
@GetMapping("admin/users")
public String listUsers(Model model, @RequestParam(defaultValue = "") String name) {
model.addAttribute("users",userService.findByName(name));
return "list";
}
}
当我在 admin/users 中输入用户时,我会得到 /admin/usertask?email=rafs@gmail.com 之类的链接,用户任务在哪里
我想和它一起工作
<div th:each="email:${emaail}">
<a th:href="@{/admin/addTask(email=${email})}" class="btn btn-dark"></a>
</div>
但是使用 getattribute 它会在添加任务后显示
有什么办法可以得到这封邮件?
解决方案
如果您想在 usertaks 端点中获取电子邮件 /admin/usertask?email=rafs@gmail.com
你需要像这样改变你的控制器
@GetMapping("/admin/usertask")
public String getEmail(@RequestParam("email") String email, Model model,HttpSession session){
model.addAttribute("task",taskService.findUserTask(email));
model.addAttribute("emaail",session.getAttribute("email"));
return "usertasklist";
}
推荐阅读
- ios - UICollectionViewDiffableDataSource:当collection view只有0个section时,请求section 0的item数
- excel - Excel如何从单列搜索结果中抓取整行数据
- angular - Angular:如何访问索引 - 数组中的键值
- io - 有没有办法在不使用该模块中的函数的情况下打印模块类型?
- xamarin.forms - Picker 的 ItemDisplayBinding 的 MultiBinding 在添加新项目时抛出 Null 引用异常
- python - Vscode - .env 文件中的变量扩展
- c# - 在画布前对游戏对象进行排序
- c++ - 从二维网格上的一点向外遍历的好算法是什么?
- python - 如何在不附加先前输入的情况下合并和关闭 PyPDF
- sql - 如何在sql中的表中获取最多一个日期