需要引入
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.4.1.Final</version> </dependency>
第二步在springmvc.xml中加入
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <!-- 如果不加默認到 使用classpath下的 ValidationMessages.properties --> </bean>
按照下列把validator對象進行初始化綁定(如若xml中用到mvc:annotation-driven配置的話。不需要這步操作。mvc:annotation-driven默認進行了如下操作)
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="cacheSeconds" value="0"/> <property name="messageConverters" ref="messageConverters"/> <property name="webBindingInitializer"> <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> <property name="validator" ref="validator" /> </bean> </property> </bean>
第三步如果用需要在具體Controller進行validator對象注入。不然不生效。我這裏是寫了基礎控制器,其他控制器繼承此類就可以
具體用法(如果不讓其拋出異常。而是正常在controller進行錯誤信息返回,需要把@Valid的參數和Errors參數緊鄰在一起,因爲代碼中有一處判斷)
所以把要驗證的參數和Errors相鄰,就可以了
如果說的不清楚,可以更詳細的問我(或加我qq1512180909)。以上均是實踐操作而來的。不是從網上隨便抄的。