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">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值