如何验证简单表单(一个输入字段)并在不提供命令对象的情况下显示错误?我的简单形式是:
<form id="verify" action="check.html">
<input name="code"/>
<form:errors path="code" />
<input type="submit" value="ok" />
</form>
下面的控制器处理程序方法。我需要生成错误消息并代替form:errors
@RequestMapping("/check.html")
public String check(@RequestParam(value="code") String code) {
if(!isGood(code)) {
// How to bind some error messages for `code` ?
return "fail"; // fail page
}
return "ok";
}
答案 0 :(得分:6)
简而言之,<form:errors>
在没有<form:form>
和其他@ModelAttribute
相关功能的情况下无效。如果您想要最简单的解决方案,可以将错误消息导出为普通模型属性,而不是使用<form:errors>
:
@RequestMapping("/check.html")
public String check(@RequestParam(value="code") String code, ModelMap model) {
if(!isGood(code)) {
model.put("codeError", "...")
return "fail"; // fail page
}
return "ok";
}
<form id="verify" action="check.html">
<input name="code"/>
<c:out value = "${codeError}" />
<input type="submit" value="ok" />
</form>