最近开发一个项目,发现字段校验比较多,同事提出使用Validation校验能更方便一些,今天记录下来,供以后参考:
一、在pom.xml中添加依赖:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
二、Controller的样例代码:
@RequestMapping("test.do")
public String save(@Valid Datasource datasource, BindingResult result, Model model) {
if (result.hasErrors()) {
return "redirect:edit.do";
}
}
三、带有注解的类代码:
public class Datasource extends Common { @Size(min = 3, max = 20, message = "用户名长度只能在3-20之间")
@Pattern(regexp = "\\w+", message = "用户名不能包含特殊字符")
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
四、测试:
<form class="form-horizontal" id="datasourceForm" action="/qreport/datasource/save.do" method="post">
<div class="form-group">
<label class="col-sm-2 control-label">名称</label>
<div class="col-sm-10">
<input type="text" name="name" value="" class="form-control">
</div>
</div> <div class="form-group">
<input type="submit" class="btn btn-primary btn-lg" value="保存">
</div>
</form>
名称填写长度不够的字符,那么就会报错,如图: