大多数 Spring 教程和示例向您展示了如何从资源文件中获取消息以及如何在您的视图 (jsp) 中显示它,而不是您应该如何在控制器中和视图之间处理这些消息。
这是我现在如何做的一个例子,我有一个处理忘记密码的视图/控制器。发送密码后,我会重定向回登录屏幕,并显示“您的密码已发送...”的消息
@RequestMapping(value="/forgottenpassword")
public String forgottenpassword(@RequestParam String email) {
....something something
if(email != null){
return "redirect:/login?forgottenpassword=ok";
}
}
@RequestMapping(value="/login")
public String login(HttpServletRequest request) {
if(request.getParameter("forgottenpassword") != null && request.getParameter("forgottenpassword").equals("ok")) {
data.put("ok_forgottenpassword", "forgottenpassword.ok");
}
return "login";
}
最后我在我的视图中显示消息,在这种情况下是一个 freemarker 模板
<#if (ok_forgottenpassword?exists)>
<div class="alert alert-success"><@spring.message "${ok_forgottenpassword}" /></div>
</#if>
这是在 Spring 框架中执行此操作的最佳方式吗?只有 1 种类型的消息很简单,但如果我需要 5 种呢?