java---数据校验

数据校验分为前台校验(js)和后台校验.

Spring帮我们定义了校验的规则,hibernate4.0帮我们实现了校验规则。

来说一下后台校验:

要实现数据校验第一步需要在实体类定义校验规则:

 

public class User {
	@Length(min=5,max=20,message="{user.name.error}")
	private String name;
	@NotNul(message="{user.birthday.isnull}")
	private Date birthday;
 }

第二步:创建校验信息文件

第三步:在SpringMVC.xml中配置校验器,配置校验信息文件,注册校验器

<!-- 注册校验器 -->
     <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
     	<!-- 提供的类 -->
     	<property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
     	<!-- 指定校验信息文件 -->
     	<property name="validationMessageSource" ref="messageSource"></property>
     </bean>
     <!-- 配置校验信息文件 -->
     <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
     	<!-- 文件名 -->
     	<property name="basenames">
     		<list>
     			<value>classpath:CustomValidateMessage</value>
     		</list>
     	</property>
     	<!-- 文件编码 -->
     	<property name="fileEncodings" value="utf-8"></property>
     	<!-- 资源文件的缓存时间   120秒 -->
     	<property name="cacheSeconds" value="120"></property>
     </bean>
     <mvc:annotation-driven conversion-service="convertService" validator="validator"></mvc:annotation-driven>

第四步:指定校验对象

/*@Validated  说明验证的对象
	 * BindingResult   保存验证的信息
	 * **/
	@RequestMapping("validateUser")
	public String validateUser(@Validated User user,BindingResult bindingResult,Model model){
		System.out.println("ValidateController---validateUser"+bindingResult.getErrorCount());
		if(bindingResult.hasErrors()){
			model.addAttribute("errors",bindingResult.getAllErrors());
			return "uservalidate";
		}else{
			System.out.println("user="+user);
			return "success";
		}
	}

第五步:在jsp页面打印错误信息

<c:if test="${errors!=null }">
  	<c:forEach items="${errors }" var="e">
  		${e.defaultMessage }
  	</c:forEach>
</c:if>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值