Spring 引导 addFlashAttribute 未在 HTML 中显示消息

Spring boot addFlashAttribute not displaying message in HTML

我一直在此处和在线搜索如何以最佳方式使用 addFlashAttribute,但无论我做什么,它都不适合我。我有一个学生模型,我正在尝试更新它并闪现成功或失败的消息。数据库和所有查询都有效,我被重定向到 showStudentDetail 页面,只是没有显示消息。这是代码:

学生服务:

public String updateStudent(Student student) {
    if(studentDAO.update(student))
        return "update student was successful!";
    return "error: failed to update student, please try again";
}

public Student getStudentInfo(String username) {
    Student student = studentDAO.get(username);
    return student;
}

学生控制器:

@PostMapping("/updateStudent")
public String updateStudent(@ModelAttribute("student") Student student, RedirectAttributes redirectAttrs) {
    String res = studentService.updateStudent(student);
    redirectAttrs.addAttribute("username", student.getUsername()).addFlashAttribute("message", res);
    return "redirect:/students/{username}/details";
}

@GetMapping("/students/{username}/details")
public String showDetailPage(@PathVariable String username, Model model) {
    Student student = studentService.getStudentInfo(username);
    model.addAttribute("student", student);
    return "student_detail";
}

student_detail(div 未显示)

<div>
    <div th:if="${param.username}" class="alert alert-info" role="alert" th:text="${param.message}"></div>
</div>

控制器中模型的名称是 student,但在视图中您使用的是“param”名称。将“参数”更改为“学生”。

我终于通过更改为消息而不是 param.message 解决了这个问题。 我真的不知道为什么它现在可以工作了,但这就是我的问题的解决方案。

仅将 html 更改为:

<div th:if="${message}" class="alert alert-info" role="alert" th:text="${message}"></div>