SpringMVC 属性校验

本文介绍了如何在SpringMVC中实现属性校验,包括引入必要的jar包,配置校验器,使用注解标注待校验字段,并在控制器中处理错误,以及前端展示错误信息的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

属性校验是在用户输入一些数据后针对这些数据有无错误进行检测。

加入下边3个包

hibernate-validator-6.0.9.Final.jar 

validation-api-2.0.1.Final.jar

jboss-logging-3.3.2.Final.jar

然后在springmvc.xml配置文件里加入校验器

<!--     开启注解配置  扫描com.samrtian.action包下的所有类-->       
    <mvc:annotation-driven validator="validator">  
    </mvc:annotation-driven>  
    <context:component-scan base-package="com.samrtian.action"/> 
    
    <!--   	校验器 -->
	<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
		<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
<!-- 		错误信息提示的配置引用-->
		<property name="validationMessageSource" ref="messageSource"/>
	</bean>
<!--     错误信息提示的配置文件 -->
	<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
		<property name="basenames">
			<list>
				<value>classpath:CustomValidationMessages</value>
			</list>
		</property>
		<property name="fileEncodings" value="utf-8"/>
		<property name="cacheSeconds" value="120"/>
	</bean>

接着在需要校验的属性字段上加入注解

public class TUser {
	private Integer id;
        //user.name.length.error是在CustomValidationMessages.properties配置文件里定义的key=value
	@Size(min=6, max=30, message="{user.name.length.error}")
    private String name;

	@NotNull(message="user.password.length.error")
    private String password;

接下来在控制器里对需要校验的字段加注解

	@RequestMapping("/login.do")
	public String login(Model model, @Validated TUser user, BindingResult bindingResult) throws Exception {
		// TODO Auto-generated method stub	
                 @Validated BingdingResult是配对使用的一前一后
		if (bindingResult.hasErrors()) {
			List<ObjectError> allError = bindingResult.getAllErrors();
			for (ObjectError objectError : allError) {
				System.out.println(objectError.getDefaultMessage());
			}
			model.addAttribute("error", allError);
			return "forward:index.jsp";
		}
		return "LoginSuccess";
	}

前台页面接收error参数显示即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值