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 处理多个验证批注错误消息_Spring_Validation_Spring Mvc_Hibernate Annotations_Spring Annotations - Fatal编程技术网

Spring 处理多个验证批注错误消息

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=“超出范围”) 私有字符串密码 我面临的问题是,当该字段留空时,它会显示错误消息(*必需,并且超出范围)。但我想显示其中一条错误消息,而不是两条 是否可以使用一条消息进行限制?如果是,这种情况的可能性是什么 如有任何建议和指导,我们将不胜感激。。提前谢谢…有一个问题。您可以查看以下链接: 我也遇到了同

我正在使用注释在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" />