Spring MVC数据验证
----------------------------------
Spring MVC 提供的数据验证是后端Controller层的数据验证
----------------------------------
声明: 我们使用的jar包:validation-api,和 hebernate-validator,和jboss-logging-3.1.0.CR2.jar ;
验证框架:JSR-303
----------------------------------
步骤: >配置web.xml 文件:<listener>,<context-param>,<filter>,<filter-mapping>,<servlet>,<servlet-mapping>;
>创建对应的resource文件:spring.xml(放行声明) , spring-mvc.xml(注解扫描声明,视图声明) , spring-validate.xml(加载validator类和messageSource声明) ;
>创建messages.properties 文件。键值对的形式。
>前端页面:想使用Spring mvc验证,就要导入spring自带的验证标签库 : <%@taglib prefix="form" uri="http://www."%> <form:form><form:input path=""/></form:form>
>前端验证代码: <font color="red"><form:error path="uname"/></font> :放在对应的文本字段后面就可以将对应的错误信息传到后端po对应的字段上了。
>后端代码实现部分: 转向方法类-->public String showValidatinForm(Map model) {//3.以下语句必须首先实例化个空对象,并且装在model中,否则出现找不到属性错误//键的名字是"userModel",且值是vo的类名,首字母小写,契约式编程//4.视图层中必须有commandName:"userModel",且值是vo的类名,首字母小写,契约式编程
UserModel um1=new UserModel();
model.put("userModel", um1);
return "validationform";
}注:只要传个po对象就行。
验证方法类--> public String processValidatinForm(@Valid UserModel um,
//顺序不能更改,必须成对出现
BindingResult result,Map model) {
if (result.hasErrors()) {
return "validationform";
}
model.put("um", um);
return "validationsuccess";
} 注:形参顺序不能变
>po类的特殊实现:在对应字段上面加上 注解 @NotEmpty @Pattern(regexp="^$") @Range(min= ,max= )...@NotNull
>messages.properties文件的实现: 键:注解.po类名.字段名 。
注:校验数字一般用String 类型进行校验。
----------------------------------
Spring MVC 提供的数据验证是后端Controller层的数据验证
----------------------------------
声明: 我们使用的jar包:validation-api,和 hebernate-validator,和jboss-logging-3.1.0.CR2.jar ;
验证框架:JSR-303
----------------------------------
步骤: >配置web.xml 文件:<listener>,<context-param>,<filter>,<filter-mapping>,<servlet>,<servlet-mapping>;
>创建对应的resource文件:spring.xml(放行声明) , spring-mvc.xml(注解扫描声明,视图声明) , spring-validate.xml(加载validator类和messageSource声明) ;
>创建messages.properties 文件。键值对的形式。
>前端页面:想使用Spring mvc验证,就要导入spring自带的验证标签库 : <%@taglib prefix="form" uri="http://www."%> <form:form><form:input path=""/></form:form>
>前端验证代码: <font color="red"><form:error path="uname"/></font> :放在对应的文本字段后面就可以将对应的错误信息传到后端po对应的字段上了。
>后端代码实现部分: 转向方法类-->public String showValidatinForm(Map model) {//3.以下语句必须首先实例化个空对象,并且装在model中,否则出现找不到属性错误//键的名字是"userModel",且值是vo的类名,首字母小写,契约式编程//4.视图层中必须有commandName:"userModel",且值是vo的类名,首字母小写,契约式编程
UserModel um1=new UserModel();
model.put("userModel", um1);
return "validationform";
}注:只要传个po对象就行。
验证方法类--> public String processValidatinForm(@Valid UserModel um,
//顺序不能更改,必须成对出现
BindingResult result,Map model) {
if (result.hasErrors()) {
return "validationform";
}
model.put("um", um);
return "validationsuccess";
} 注:形参顺序不能变
>po类的特殊实现:在对应字段上面加上 注解 @NotEmpty @Pattern(regexp="^$") @Range(min= ,max= )...@NotNull
>messages.properties文件的实现: 键:注解.po类名.字段名 。
注:校验数字一般用String 类型进行校验。