Java 如何将我的错误(在BindingResult中)绑定到我的字段?

Java 如何将我的错误(在BindingResult中)绑定到我的字段?,java,spring,jsp,Java,Spring,Jsp,我已经为我的JSP表单实现了自定义验证,当出现错误时,表单将返回绑定到BindingResult的错误。我的表单如下所示: <form:form name="createCustomer" action="/practicemvc/customers/create/" method="POST" modelAttribute="customerBean"> <form:errors /> <label for="customerName">

我已经为我的JSP表单实现了自定义验证,当出现错误时,表单将返回绑定到BindingResult的错误。我的表单如下所示:

<form:form name="createCustomer" action="/practicemvc/customers/create/" method="POST" modelAttribute="customerBean">

    <form:errors />

    <label for="customerName">Name</label>
    <input type="text" name="name" id="customerName" value="${customerBean.name}" />
    <form:errors path="name" />
getProperty()将返回“name”,getErrorCode()将返回“INVALID_EMAIL”。“无效的电子邮件”通过我的messageSource bean翻译为“您的电子邮件无效”。如果我查看BindingResult中错误的内容,似乎一切正常,但它们并没有像JSP中预期的那样输出。有什么想法吗


谢谢,B

据我所知,要将错误消息与需要a的字段相关联,其中
objectName
customerBean
,而
field
是字段名。

我似乎可以将其与以下内容结合使用,但似乎不太必要

for(ErrorType errorType: validationResult.getErrors()) {
    fieldErrorCodes = new String[]{
        errorType.getErrorCode()
    };

    bindingResult.addError(new ObjectError(errorType.getProperty(), fieldErrorCodes , null, null));

    if(errorType.getProperty().length() > 0) {
        bindingResult.addError(new FieldError(bindingResult.getObjectName(), errorType.getProperty(), null,
                false, fieldErrorCodes, null, null));
    }
}

请注意在表单中使用objectName,例如commandName和className。请参阅:但字段没有getter
<form:errors path="name" />
for(ErrorType errorType: validationResult.getErrors()) {
    bindingResult.addError(new ObjectError(errorType.getProperty(),
            new String[]{errorType.getErrorCode()}, null, null));
}
for(ErrorType errorType: validationResult.getErrors()) {
    fieldErrorCodes = new String[]{
        errorType.getErrorCode()
    };

    bindingResult.addError(new ObjectError(errorType.getProperty(), fieldErrorCodes , null, null));

    if(errorType.getProperty().length() > 0) {
        bindingResult.addError(new FieldError(bindingResult.getObjectName(), errorType.getProperty(), null,
                false, fieldErrorCodes, null, null));
    }
}