SpringMVC—Validation校驗

一、添加架包和配置web.xml配置

在SPringMVC的基本架包上再添加以下架包

web.xml配置詳情見SpringMVC的web.xml配置

二、SpringMVC的配置中配置相關的校驗配置

分爲兩種方式校驗

方式一:

<!-- 1、配置資源文件 -->
	<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
		<!-- 配置本地資源文件的基本名 -->
		<property name="basenames">
			<list>
				<!-- 這裏的classpath:的名字是錯誤信息文件的名字,注意:這裏不用加後綴名 -->
				<value>classpath:CustomValidationMessage</value>
					         </list>
				</property>
					<!-- 配置文件編碼 -->
					<property name="fileEncodings" value="UTF-8"></property>
					<!-- 配置文件存放是時間--><property name="cacheSeconds" value="120"></property>
				</bean>
				<!--2、 配置校驗器(本地校驗器) -->
				<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
					<!-- 配置提供者 -->
					<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
					<!-- 配置校驗資源文件(校驗信息來源) -->
					<property name="validationMessageSource" ref="messageSource"/>
				</bean>
				<!-- 3、配置webBinder -->
				<bean id="customBinder" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
			<property name="validator" ref="validator"></property>
		</bean> 
		<!--適配器-->
		<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
			<!-- 4、在這種配置中需要在handlerAdapter中配置WebBindingInitializer -->
			<property name="webBindingInitializer" ref="customBinder"></property>
		</bean>




方式二:

		<!--3、 配置註解驅動 引用校驗器 (切記一定要放在首位,不然無法實現,有時候若需調動位置則應調動)-->
		<mvc:annotation-driven validator="validator"/>
		<!--1、 配置資源文件 -->
		<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
			<!-- 配置本地資源文件的基本名 -->
			<property name="basenames">
				<list>			
					<!-- 這裏的classpath:的名字是錯誤信息文件的名字,注意:這裏不用加後綴名 -->
<value>classpath:CustomValidationMessage</value> </list> </property> <!-- 配置文件編碼 --> <property name="fileEncodings" value="UTF-8"></property> <!-- 配置文件存放是時間--> <property name="cacheSeconds" value="120"></property> </bean> <!--/2、配置校驗器(本地校驗器) --> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <!-- 配置提供者 --> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> <!-- 配置校驗資源文件(校驗信息來源) --> <property name="validationMessageSource" ref="messageSource"/> </bean>


三、定義錯誤信息的文件



四、在實體類中使用內部校驗規範

private Integer sid;
	@Size(max=10,min=4,message="{length.error}") //名字的長度最小爲4個字符,最大爲10個字符,否則出現錯誤信息length.error
	private String sname;
	private String sex;
	private Integer age;
	@NotNull(message="{notnull}")	//這裏是不能爲空null
	@NotEmpty(message="{notnull}")	//這裏是不能爲空白字符串
	private String addr;

補充:validation有如下校驗規則:

5、在控制器中獲取錯誤信息幷包裝到model中

@RequestMapping("/add")
	public String add(Model model,@Validated Student st,BindingResult result)throws Exception{
		System.out.println("st:"+st);
		if(result.hasErrors()){
			for(ObjectError oe:result.getAllErrors())System.out.println(oe);
			model.addAttribute("error", result.getAllErrors());
			return "add";
		}
		return "redirect:list.action";
	}

6、在JSP頁面顯示錯誤信息

	<h3>添加</h3>
	<div class="col-md-6">
		<c:forEach items="${error }" var="e">
			${e.defaultMessage }   //顯示錯誤信息
		</c:forEach>
		<form action="add.action" method="post">

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章