JSR303后端校验(一)
JSR303后端校验(一)
(1)在pom文件中添加依赖
<!-- JSR303后端校验 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.16.Final</version>
</dependency>
(2)在实体类中添加对应的校检规则
private Integer id; @NotEmpty(message = "用户名不能为空")
@Pattern(regexp="^\\w{6,18}$",message="用户名必须由6到18位的数字字母或者下划线组成")
private String name; @Length(min=6,max=32,message="密码必须为6到32位的字符串")
private String password; @NotNull(message = "年龄不能为空")
@Max(value = 110,message = "输入的年龄不合法")
@Min(value=1,message = "输入的年龄不合法")
private Integer age; @Pattern(regexp = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$",message = "邮箱格式不正确")
private String email;
(3)在controller中使用校检规则
@RequestMapping("/addStudent")
public String addStudent(@Valid Student student,BindingResult result,ModelMap map) {
if(result.hasErrors()) {
List<FieldError> errors = result.getFieldErrors();
for (FieldError fieldError : errors) {
System.out.println(fieldError);
System.out.println("字段:"+fieldError.getField()+",信息:"+fieldError.getDefaultMessage());
map.put(fieldError.getField(), fieldError.getDefaultMessage()); if(fieldError.getField().equals("name")) {
map.put("name", fieldError.getDefaultMessage());
}
if(fieldError.getField().equals("password")) {
map.put("password", fieldError.getDefaultMessage());
}
if(fieldError.getField().equals("age")) {
map.put("age", fieldError.getDefaultMessage());
}
if(fieldError.getField().equals("age")) {
map.put("age", fieldError.getDefaultMessage());
}
if(fieldError.getField().equals("email")) {
map.put("email", fieldError.getDefaultMessage());
}
}
}else {
studentService.addStudent(student);
}
return "student";
}
(4)页面提示
<form action="addStudent" method="get">
用户名:<input type="text" name="name"><span style="color:red">${name }</span><br>
密码:<input type="text" name="password"><span style="color:red">${password }</span><br>
年龄:<input type="text" name="age"><span style="color:red">${age }</span><br>
邮箱:<input type="text" name="email"><span style="color:red">${email }</span><br>
出生日期:<input type="date" name="borth"><br>
<input type="submit" value="提交">
</form>
JSR303后端校验(一)的更多相关文章
- JSR303 后端校验包的使用
1.首先通过Maven导入JSR303架包. <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate- ...
- JSR303后端校验详细笔记
目录 JSR303 使用步骤 关于不为空 分组校验 自定义校验 完整代码 JSR303 使用步骤 1.依赖 <!--数据校验--> <dependency> <group ...
- 【spring】-- jsr303参数校验器
一.为什么要进行参数校验? 当我们在服务端控制器接受前台数据时,肯定首先要对数据进行参数验证,判断参数是否为空?是否为电话号码?是否为邮箱格式?等等. 这里有个问题要注意: 前端代码一般上会对这些数据 ...
- SpringMVC 使用JSR-303进行校验 @Valid
注意:1 public String save(@ModelAttribute("house") @Valid House entity, BindingResult result ...
- [SpringBoot] - 配置文件的多种形式及JSR303数据校验
Springboot配置文件: application.yml application.properties(自带) yml的格式写起来稍微舒服一点 在application.properties ...
- 转:使用JSR-303进行校验 @Valid
一.在SringMVC中使用 使用注解 1.准备校验时使用的JAR validation-api-1.0.0.GA.jar:JDK的接口: hibernate-validator-4.2.0.Fina ...
- YAML语法使用,JSR303数据校验
YAML YAML是 "YAML Ain't a Markup Language" (YAML不是一种置标语言)的递归缩写 # yaml配置 server: prot: YAML语 ...
- Springboot:JSR303数据校验(五)
@Validated //开启JSR303数据校验注解 校验规则如下: [一]空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @No ...
- Java-Bean Validation后端校验总结
Validation Information resource: SpringBoot Docs: 2.8.9. @ConfigurationProperties Validation url: ht ...
随机推荐
- 认识一下microbit扩展板robotbit
在我们买到的套件中,另一块叫robotbit扩展板,所谓扩展板,是把控制板上的针脚引出来,方便我们扩展驱动连接电机.舵机.及各种传感器以展功能. 介绍如下 :下面 反面: 官方文档:http://le ...
- Java8实战及自己的总结
java8 介绍 java8是2014年3月份,由Oracle发布的一个版本,又称之为jdk1.8,是现再我们在学习和工作中用的最多的一个版本. 在jdk1.8中,java8以添加非常多的新特性, ...
- EXT.net 1.x TreePanel的一个坑
Ext.net TreePanel有一个方法 drptreepanel.setChecked({ ids: idsarray, silent: true }); 如果TreePanel里有1,3两个 ...
- js遍历数组和数组对象
<script> //----------------for用来遍历数组对象-- var i,myArr = [1,2,3]; for (var i = 0; i < myArr.l ...
- Replication:Distribution Reader
在transactional replication中,在publication中执行了一个更新,例如:update table set col=? Where ?,如果table中含有大量的数据行, ...
- GIT VI操作汇总
在Git Bash Here中用命令行 pull\push\merge 代码,如果存在冲突或者自动合并时,会自动进入VI界面 1.按下 ESC 键,退出编辑模式,切换到命令模式. 2.输入 :wq , ...
- Jwt身份验证
转载自博友(TerryTon) 1.因为json是通用的,所以jwt可以在绝大部分平台可以通用,如java,python,php,.net等 2.基于jwt是无状态的,jwt可以用于分布式等现在比 ...
- 【8】学习C++之this指针
在学习类的时候,我们可以考虑到一种情况: class Array { public: Array(int len); ~Array(); void setLen(int len) { len=len; ...
- [其它]iOS 13 正式版发布 iPhone 6s或更新型号均可升级
苹果今天(2019.09.20)发布了 iOS 13 正式版,可以升级的设备包括 iPhone 6s 或更新型号.第七代 iPod Touch. iOS 13 推出深色模式,为 iPhone 带来截然 ...
- OpenResty下载安装教程
原文链接:http://www.studyshare.cn/software/details/1174/0 一.OpenResty简介 OpenResty是一个全功能的 Web 应用服务器.它打包了标 ...