validation 校验
validation校验所需jar包
1、pom下载方式:
1 2 <dependencies> 3 <dependency> 4 <groupId>org.jboss.logging</groupId> 5 <artifactId>jboss-logging</artifactId> 6 <version>3.1.4.GA</version> 7 </dependency> 8 <dependency> 9 <groupId>javax.validation</groupId> 10 <artifactId>validation-api</artifactId> 11 <version>1.0.0.GA</version> 12 </dependency> 13 </dependencies>
2、另一个jar包及之前pom文件下载方式中两个jar包在下面网盘链接中请下载。
链接:https://pan.baidu.com/s/1PW_z51rfvbFuKVZhBElzlg
提取码:f0b6
微信提取:
一、springmvc.ml中配置 validator="validator"必须指定
<mvc:annotation-driven validator="validator"></mvc:annotation-driven> <!--spring对校验文件提出的接口 --> <bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" id="validator"> <!-- habernate校验器 --> <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property> <!-- 指定校验使用的资源问件位置 --> <property name="validationMessageSource" ref="messageSourse"></property> </bean> <bean class="org.springframework.context.support.ReloadableResourceBundleMessageSource" id="messageSourse"> <property name="basenames"> <list> <!--校验资源文件信息 --> <value>classpath:CustomValidationMessages</value> </list> </property> <!--资源文件编码格式--> <property name="fileEncodings" value="utf-8"></property> <!--对资源文件暂存时间 --> <property name="cacheSeconds" value="120"></property> </bean>
二、新建properties文件用来存自定义校验信息等号后面是uinque码因为没设置所以不显示中文。
person.id.size.erro=\u8BF7\u8F93\u51651-20\u4F4D\u6570
person.pname.isNull=\u8BF7\u8F93\u5165\u4F60\u7684\u503C\u5B9D\u8D1D\u3002
三、pojo文件注释写法。
package com.zsp.entity;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import javax.validation.constraints.Size;
public class Person {
private Integer pid;
@Size(max=20,min=1,message="{person.id.size.erro}")
private String pname;
@NotNull(message="{person.pname.isNull}")
private Integer page;
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Person(Integer pid, String pname, Integer page) {
super();
this.pid = pid;
this.pname = pname;
this.page = page;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Person [pid=" + pid + ", pname=" + pname + ", page=" + page + "]";
}
}
四、controller编写注意:在扩展类之前打@validated扩展类之后加bindingRequest形参
1 @RequestMapping("/updatePersons.do") 2 public String updatePersons(Model model,@Validated PersonVo person ,BindingResult bindingResult,HttpServletRequest request)throws Exception{ 3 4 if (bindingResult.hasFieldErrors()) {
//获取错误信息 5 List<ObjectError> allerros=bindingResult.getAllErrors(); 6 for (ObjectError objectError : allerros) { 7 System.out.println(objectError.getDefaultMessage()); 8 }
//将错误信息包装传给jsp页面。 9 model.addAttribute("alleros",allerros); 10 return "forward:/update.jsp"; 11 } 12 personService.updatePerson(person,person.getPid()); 13 model.addAttribute("message", "修改成功"); 14 return "redirect:selectMessage.do"; 15 }
jsp页面就不写了相信你们的聪明才智可以根据我程序吧关键点进行提取,分组校验下期再分享,希望对大家有帮助。
吃饭睡觉学Java。