springmvc中validator的使用

jar包



在springmvc.xml中配置validator

<!-- 配置注解驱动 -->
	<mvc:annotation-driven validator="validator"></mvc:annotation-driven>
	
	<!-- 校验器 -->
	<bean id="validator"
		class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
		<!-- hibernate校验器-->
		<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
		<!-- 指定校验使用的资源文件,在文件中配置校验错误信息,如果不指定则默认使用classpath下的ValidationMessages.properties -->
		<property name="validationMessageSource" ref="messageSource" />
	</bean>	
	
	<!-- 校验错误信息配置文件 -->
	<bean id="messageSource"
		class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
		<!-- 资源文件名-->
		<property name="basenames">   
       	 <list>    
            <value>classpath:LoginValidationMessages</value> 
       	 </list>   
    	</property>
    	<property name="defaultEncoding" value="UTF-8"/>
		<!-- 资源文件编码格式 -->
		<property name="fileEncodings" value="utf-8" />
		<!-- 对资源文件内容缓存时间,单位秒 -->
		<property name="cacheSeconds" value="120" />
	</bean>
	


错误信息的配置文件LoginValidationMessages.properties

#添加校验错误提示信息
user.username.length.error=请输入3到10字符的用户名
user.password.length.error=请输入5到20字符的密码
user.email.error=请输入正确的邮箱

controller

	@RequestMapping(value="/login", method=RequestMethod.POST)
	public String login(Model model,@Valid User user, BindingResult result) {
		String page = "success";
		if(result.hasErrors()){
			page = "login";
		    List<ObjectError> list = result.getAllErrors();
		    model.addAttribute("errors", list);
		} else{
			model.addAttribute("user", user);
			page = "success";
		}
		return page;
	}


前端页面显示出错信息
<!-- 显示出错信息 -->
	<c:if test="${errors!=null}">
		<c:forEach items="${errors}" var="error">
			${error.defaultMessage }<br />
		</c:forEach>
	</c:if>


结果





猜你喜欢

转载自blog.csdn.net/qq_34902684/article/details/78534680
今日推荐