springmvc-validate数据验证

实现功能:数据验证,错误要提示


package com.abc.beans;



import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;


import org.hibernate.validator.constraints.NotEmpty;
bean的验证规则

public class Student {
@NotEmpty(message="用户名不要为空")
@Size(min=2,max=5,message="用户名长度为{min}-{max}个字符")
private String name;

@Min(value=0, message="年龄最小值为{value}")
@Max(value=100, message="成绩最大值为{value}")
private int age;

@NotEmpty(message="学校代码不能为空")
@Pattern(regexp="^1[3456789]\\d{9}$", message="手机号不正确")//正则表达式
private String school;


@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", school=" + school + "]";
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}


public String getSchool() {
return school;
}


public void setSchool(String school) {
this.school = school;
}


public Student(String name, int age, String school) {
super();
this.name = name;
this.age = age;
this.school = school;
}


public Student() {
super();
// TODO Auto-generated constructor stub
}





}


package com.abc.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


import com.abc.beans.Student;
// 定义处理器
@Controller
@RequestMapping("/some")
public class SomeHandler {


@RequestMapping("/register.do")
    public ModelAndView doRegister(@Validated Student student, BindingResult rs) {
ModelAndView mv = new ModelAndView();
mv.setViewName("/WEB-INF/jsp/welcome.jsp");

if(rs.hasErrors()){ //遍历所有可能发生的错误
FieldError nameError = rs.getFieldError("name");
FieldError ageError = rs.getFieldError("age");
FieldError schoolError = rs.getFieldError("school");



if(nameError != null)
{

String nameErroMessage = nameError.getDefaultMessage();//获取错误信息name
mv.addObject("nameErroMessage", nameErroMessage);
}
if( ageError != null)
{

String ageErroMessage = ageError.getDefaultMessage();//获取错误信息age
mv.addObject("ageErroMessage", ageErroMessage);
}
if( schoolError != null)
{
String schoolErroMessage = schoolError.getDefaultMessage();//获取错误信息school
mv.addObject("schoolErroMessage", schoolErroMessage);
}

mv.addObject("name",student.getName() );
mv.addObject("age",student.getAge() );
mv.addObject("school",student.getSchool() );
mv.setViewName("/index.jsp");
}

return mv;
}

}


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">




 <!-- 注册组件扫描器 -->
 
<context:component-scan base-package="com.abc.handlers"/>


<!-- 注册验证器 -->
<bean id="localValidatorFactoryBean" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<!--生成验证器HibernateValidate  -->
<property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>


</bean>




<!-- 注册MVC注解驱动 -->
<mvc:annotation-driven validator ="localValidatorFactoryBean"/>

</beans>


验证功能能实现,但是数据判断优先级有问题。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值