如果控制器返回綁定錯誤,我想在自由標記模板中顯示全局驗證錯誤列表。我可以顯示與某個字段相關的錯誤,但是我想要檢測特定bean中發生錯誤的時間,並在頁面頂部顯示一條消息。我用下面這不產生輸出的例子嘗試:在Freemarker模板中顯示Spring MVC驗證錯誤
<@spring.bind "webPage" />
....
<#if spring.status.error>
There were problems with the data you entered:
<ul>
<#list spring.status.errorMessages as error>
<li>${error?html}</li>
</#list>
</ul>
</#if>
儘管與提交的形式出現是錯誤的,下面總是行返回0:
${spring.status.errorMessages?size}
我的控制器代碼如下:
@RequestMapping(method = RequestMethod.POST)
public ModelAndView save(@ModelAttribute("webPage") @Valid WebPage page, BindingResult result, Model model) {
if (!model.containsAttribute("site")) {
throw new IllegalArgumentException("Model must contain site attribute.");
}
Site site = (Site) model.asMap().get("site");
if (!result.hasErrors() && !page.isNew()) {
this.pageService.save(page, site);
} else if (!result.hasErrors() && page.isNew()) {
this.pageService.create(page, site);
}
return createMav(result);
}
的createMav方法是如下:
public ModelAndView createMav(BindingResult result) {
ModelAndView mav = new ModelAndView();
mav.setViewName(getPrimaryControllerView());
mav.addAllObjects(result.getModel());
return mav;
}
有沒有辦法使用Freemarker + Spring MVC實現這一點?
我可能是錯了,但文檔解釋瞭如何輸出錯誤消息旁邊綁定字段。我需要檢測是否發生驗證失敗,並在任何字段綁定之前在頁面頂部顯示消息。 – TimS