0
私の春のブートmvcアプリケーションで動作するモデル検証を取得しようとしています。私はビューテンプレートとしてフリーメーカを使用しています。私の問題は、たとえモデルバリデーションが期待通りに機能しても、モデルエラーが私のビューに表示されないことです。スプリングブートFreemarker status.errorMessagesに値が設定されていません
ここにいくつかのコード例を示します。モデル:
public class TestModel {
@Size(min=2, max=10)
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
コントローラ
@Controller
@RequestMapping("/test")
public class OrderController extends BaseController {
@RequestMapping(value = "new/greenhouse", method = RequestMethod.GET)
public String get(@ModelAttribute TestModel testModel) {
testModel.setName("Hello world");
return "test.ftl";
}
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String post(@ModelAttribute @Valid TestModel testModel, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
// The bindingResult contains the "correct" errors
return "test.ftl";
}
return "redirect:/";
}
}
ビュー:
<#import "../layout.ftl" as layout />
<#import "/spring.ftl" as spring />
<#import "../freemarker.ftl" as ftl />
<@layout.defaultLayout>
<form action="/test" method="post">
<@ftl.csrfToken />
Name:
<@spring.formInput "testModel.Name" />
<@spring.showErrors "<br>" /> <#-- Does not print the error as status.errorMessages is not populated -->
<#-- This will at least display the default Message -->
<#list spring.status.errors.allErrors as error>
<span class="has-error">${error.defaultMessage} </span>
</#list>
</form>
</@layout.defaultLayout>
status.errorMessages
が読み込まれない理由を任意のアイデア?