【问题标题】:Spring3 MVC: Validation not workingSpring3 MVC:验证不起作用
【发布时间】:2014-06-26 06:01:37
【问题描述】:

性别验证不起作用。即使在性别文本字段中未输入任何值,表单也会成功验证而不会引发任何错误。

下面是 Employee 类:

@Size(min=2,max=10)
private String gender;

// Setters and Getters

下面是Controller方法:

@RequestMapping(value="done", method = RequestMethod.POST)
public String validateForm(@Valid Employee employee, BindingResult result, ModelMap m){
    if(result.hasErrors()){
        System.out.println("Validation Failed!!!");
        return "main";
    }else{
        System.out.println("Validation Succeeded!!!");
        return "done";
    }
}

以下是上下文文件:

<context:annotation-config />
<context:component-scan
    base-package="com.XXX" />

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/pages/" />
    <property name="suffix" value=".jsp" />
</bean>

下面是jsp文件:

<tr>
            <td>
                Gender:
            </td>
            <td>
                <form:input path="gender"/>
                <form:errors path="gender" cssStyle="color: red;"/>
            </td>
        </tr>

我无法找出缺少的东西,但它有些愚蠢。请帮忙。

【问题讨论】:

  • HibernateValidator 在你的类路径上吗?您是否从 javax.validation 包中导入了 @Size?
  • 验证器:validation-api.jar 和 hibernate-validator.jar 都存在于我的类路径中。是的,包是:import javax.validation.constraints.Size;

标签: java spring validation spring-mvc


【解决方案1】:

1) 所有的 javax 约束在其通过条件中都包含一个隐含的“或 null”。如果您想捕获空白,您需要添加@NotNull,或重新配置网络活页夹以将空白输入绑定到空字符串而不是 null。

2) &lt;context:annotation-config /&gt; 没有打开 Spring 3 调度程序 servlet 自动配置魔法。如果这样做,您需要定义自己的验证器 bean。要让一切自动运行,您需要使用&lt;mvc:annotation-driven /&gt;

【讨论】:

  • 我将@Size 更改为@NotNull,但验证仍然不起作用。请指教。
  • 两个注释都需要
  • 还是不行:@Size(min=2,max=10) @NotNull private String gender;
  • 验证是否适用于长度为 1 或 11 的字符串,但不适用于空白,或者没有任何效果?
  • 没有任何效果。首先,尝试不使用任何字符,第二:尝试使用单个字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多