Spring 处理多个验证批注错误消息
我正在使用注释在SpringMVC中尝试验证 我对一个字段使用了2个注释进行验证 @NotEmpty(message=“required”) @Size(min=“3”max=“8”message=“超出范围”) 私有字符串密码强> 我面临的问题是,当该字段留空时,它会显示错误消息(*必需,并且超出范围)。但我想显示其中一条错误消息,而不是两条 是否可以使用一条消息进行限制?如果是,这种情况的可能性是什么Spring 处理多个验证批注错误消息,spring,validation,spring-mvc,hibernate-annotations,spring-annotations,Spring,Validation,Spring Mvc,Hibernate Annotations,Spring Annotations,我正在使用注释在SpringMVC中尝试验证 我对一个字段使用了2个注释进行验证 @NotEmpty(message=“required”) @Size(min=“3”max=“8”message=“超出范围”) 私有字符串密码 我面临的问题是,当该字段留空时,它会显示错误消息(*必需,并且超出范围)。但我想显示其中一条错误消息,而不是两条 是否可以使用一条消息进行限制?如果是,这种情况的可能性是什么 如有任何建议和指导,我们将不胜感激。。提前谢谢…有一个问题。您可以查看以下链接: 我也遇到了同
如有任何建议和指导,我们将不胜感激。。提前谢谢…有一个问题。您可以查看以下链接:
我也遇到了同样的问题,所以我创建了自定义错误标签,只显示第一个错误-请随意使用: a] 创建自定义标记类
package cz.devmint.springext.web.tags.form;
import javax.servlet.jsp.JspException;
import org.apache.commons.lang.StringUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.servlet.tags.form.ErrorsTag;
import org.springframework.web.servlet.tags.form.TagWriter;
public class ErrorsTagExt extends ErrorsTag {
private boolean firstErrorOnly = true;
public boolean isFirstErrorOnly() {
return firstErrorOnly;
}
public void setFirstErrorOnly(boolean firstErrorOnly) {
this.firstErrorOnly = firstErrorOnly;
}
@Override
protected void renderDefaultContent(TagWriter tagWriter) throws JspException {
tagWriter.startTag(getElement());
writeDefaultAttributes(tagWriter);
String delimiter = ObjectUtils.getDisplayString(evaluate("delimiter", getDelimiter()));
String[] errorMessages = getBindStatus().getErrorMessages();
for(int i = 0; i < errorMessages.length; i++) {
String errorMessage = errorMessages[i];
if (i > 0) {
tagWriter.appendValue(delimiter);
}
tagWriter.appendValue(getDisplayString(errorMessage));
if (firstErrorOnly) break;
}
tagWriter.endTag();
}
将此xml文件放入WEB-INF/tld/spring-ext.tld
在jsp页面上添加声明:
<%@taglib prefix="spring-ext" uri="http://cz.devmint.spring-ext/tags" %>
使用自定义标记代替spring的ErrorsTag:
<spring-ext:errors path="dummy" firstErrorOnly="true" />
感谢您的回答ahmetdursun。。。我看到了您发布的链接,在这种情况下,他们使用了接口和自己的验证,所以他们使用了“@ReportAssingeViolation”,但在我的情况下,我在类中使用预定义的异常注释,无法放置“@ReportAssingeViolation”注释。。。还有其他方法吗?您好,我可以理解您给出的代码,但很抱歉,我不知道在哪里使用此代码以及如何将其映射到视图中的错误标记。。我真的很抱歉我是春天的新手。。。你能解释一下如何使用这个代码吗?好的,我已经添加了完整的代码和特定步骤的解释。非常感谢你让我的一天过得很开心,你做了很好的工作,它的工作方式与我预期的一样。。再次感谢您的知识分享…我真的很抱歉用户2003170,我不能投票支持您的答案。我没有多少声誉可以投票…user2003170如果我们不定义GroupSequence,如何保证属性验证的顺序?如果我们不这样做,每次属性验证的顺序都是随机的。
<spring-ext:errors path="dummy" firstErrorOnly="true" />