首页 > 解决方案 > 从当前页面获取属性

问题描述

任务控制器

     @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 它会在添加任务后显示

有什么办法可以得到这封邮件?

标签: springhyperlinkgetattribute

解决方案


如果您想在 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";
}

推荐阅读