Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Java SpringMVC:如何标记两个输入无效?_Java_Spring Mvc_Validation - Fatal编程技术网

Java SpringMVC:如何标记两个输入无效?

Java SpringMVC:如何标记两个输入无效?,java,spring-mvc,validation,Java,Spring Mvc,Validation,我在webapp中使用SpringMVC来处理表单及其验证 在我的验证器中,我有如下代码: @Override public void validate(final Object target, final Errors errors) { final LoginCommand loginCommand = (LoginCommand) target; if (checkCredentials(loginCommand.getLogin(), loginCommand.getPa

我在webapp中使用SpringMVC来处理表单及其验证

在我的验证器中,我有如下代码:

@Override
public void validate(final Object target, final Errors errors)
{
    final LoginCommand loginCommand = (LoginCommand) target;
    if (checkCredentials(loginCommand.getLogin(), loginCommand.getPassword()) {
        errors.rejectValue("login", "login.error.invalid");
        errors.rejectValue("password", "login.error.invalid");          
    }
    //..
这样,在填充cssErrorClass属性时,我会得到正确呈现的无效属性。 现在的问题是login.error.invalid消息在错误消息列表中,我将显示两次

将两个输入字段标记为无效,但错误列表中只有一条消息的最佳方法是什么?
我搜索了SpringMVC文档/api,没有找到一种不提供消息就拒绝字段的方法。

在这种情况下,我建议将所有表单标记为无效:

if (checkCredentials(loginCommand.getLogin(), loginCommand.getPassword()) {
    errors.rejectValue("login.error.invalid");         
}
并将其显示在视图中

<form:errors />

假设 必须将sf:errors标记放在s:bind标记中以限制它。下面是一个将错误限制在登录字段的示例(路径可能不适合您的需要,但在本例中是正确的):

<s:bind path="loginForm.login"> <sf:errors/> </s:bind>
注意:我直接在答案中输入了这一点,我已经有一段时间没有使用spring mvc了。

通常情况下,它会像这样工作,但有错误。拒绝(“login.error.invalid”)。但是,特定字段不会获得应用于class属性的cssErrorClass样式。 <s:bind path="loginForm.login"> <sf:errors/> </s:bind>