如何在Spring Roo自定义控制器中显示字段错误';形式
我遇到了以下问题:错误消息不会显示在用户表单中,而是存在于BindingResult中。我需要你的帮助。 我正在使用SpringRoo生成的控制器SignUpController如何在Spring Roo自定义控制器中显示字段错误';形式,spring,validation,message,spring-roo,Spring,Validation,Message,Spring Roo,我遇到了以下问题:错误消息不会显示在用户表单中,而是存在于BindingResult中。我需要你的帮助。 我正在使用SpringRoo生成的控制器SignUpController @RequestMapping("/signup/**") @Controller public class SignUpController { List<ObjectError> signUpErrors; @Autowired private SignUpValidator validator;
@RequestMapping("/signup/**")
@Controller
public class SignUpController {
List<ObjectError> signUpErrors;
@Autowired
private SignUpValidator validator;
@ModelAttribute("UserRegistrationForm")
public UserRegistrationForm formBackingObject() {
return new UserRegistrationForm();
}
@RequestMapping(params = "form", produces = "text/html")//, method = RequestMethod.GET)
public String createForm(Model uiModel) {
populateSignUpForm(uiModel, new UserRegistrationForm());
//uiModel.addAttribute("signUpErrors", signUpErrors);
return "signup/index";
}
@RequestMapping(method = RequestMethod.POST, produces = "text/html")
public String create(@Valid UserRegistrationForm userRegistration,
BindingResult bindingResult, Model uiModel, HttpServletRequest request) {
validator.validate(userRegistration, bindingResult);
if (bindingResult.hasErrors()) {
populateSignUpForm(uiModel, userRegistration);
//uiModel.addAttribute("signUpErrors", bindingResult.getAllErrors());
return "signup/index";
}
...
,尝试使用自定义验证器进行验证。我可以向用户显示错误消息,直接将BindingResults传递到jspx,并使用如下代码:
<c:if test="${signUpErrors.size()>0}">
<util:panel id="title" title="${title}">
<h2>
<spring:message code="signup_index_error" />
</h2>
<p></p>
<c:forEach var="err" items="${signUpErrors}">
<br />
<tr>
<td>${err.objectName} </td>
<td>${err.codes} </td>
<td>${err.arguments} </td>
<td>${err.defaultMessage} </td>
</tr>
</c:forEach>
</util:panel>
<p></p>
</c:if
${err.objectName}
${err.code}
${err.arguments}
${err.defaultMessage}
请提供您的注册验证程序代码
<c:if test="${signUpErrors.size()>0}">
<util:panel id="title" title="${title}">
<h2>
<spring:message code="signup_index_error" />
</h2>
<p></p>
<c:forEach var="err" items="${signUpErrors}">
<br />
<tr>
<td>${err.objectName} </td>
<td>${err.codes} </td>
<td>${err.arguments} </td>
<td>${err.defaultMessage} </td>
</tr>
</c:forEach>
</util:panel>
<p></p>
</c:if
<field:input field="login"
id="fc_.._UserRegistrationForm_login" required="true"
z="" />
<sf:errors path="login" cssStyle="error"></sf:errors>
<field:input field="email"
id="fc_.._UserRegistrationForm_email" required="true"
z="" />
<sf:errors path="*" cssStyle="error"></sf:errors>