Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Spring Roo自定义控制器中显示字段错误';形式_Spring_Validation_Message_Spring Roo - Fatal编程技术网

如何在Spring Roo自定义控制器中显示字段错误';形式

如何在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;

我遇到了以下问题:错误消息不会显示在用户表单中,而是存在于BindingResult中。我需要你的帮助。 我正在使用SpringRoo生成的控制器SignUpController

@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>