下面是关于“Spring Validation实现数据校验的示例”的完整攻略,包含两条示例。
主要思路
Spring Validation是一种校验框架,它允许开发者为Java对象的属性定义验证规则,并进行数据校验。
其主要思路如下:
- 定义数据模型,即Java对象,它包含需要验证的属性
- 定义校验规则,即对属性设置验证注解
- 利用Spring Validation框架对Java对象进行校验,并在校验失败后返回错误信息
示例一:验证用户注册信息
1. 定义数据模型
我们需要定义一个数据模型,来描述用户注册信息,如下:
public class User {
@NotNull(message = "用户名不能为空")
private String name;
@NotNull(message = "密码不能为空")
@Size(min = 6, message = "密码长度不能少于6位")
private String password;
@NotNull(message = "确认密码不能为空")
private String confirmPassword;
@Email(message = "邮箱格式不正确")
private String email;
// getter和setter方法省略
}
2. 定义校验规则
我们需要为数据模型中的每个属性设置不同的验证注解,即校验规则,如下:
@NotNull
:表示该属性不能为null@Size
:表示该属性的长度需要大于等于指定的最小长度@Email
:表示该属性是合法的邮件地址
3. 实现校验
接下来,我们需要实现对用户输入信息的校验,并在校验失败时返回错误信息。此处使用了@PathVariable
注解来获取URL路径参数。
@RestController
@RequestMapping("/register")
public class RegisterController {
@PostMapping
public ResponseEntity<String> register(@Validated @RequestBody User user, BindingResult result) {
if (result.hasErrors()) {
return ResponseEntity.badRequest().body(result.getFieldError().getDefaultMessage());
}
// 保存用户信息到数据库
return ResponseEntity.ok("注册成功!");
}
}
在上面的代码中使用了@Validated
注解来实现对Java对象的校验,错误结果会被保存在BindingResult
对象中。
4. 测试校验结果
接下来,我们可以来模拟一个用户的注册请求,测试校验结果是否正确。
curl -X POST -H "Content-Type: application/json" -d '{"name": null}' http://localhost:8080/register
该请求的返回结果应该为:
"用户名不能为空"
示例二:验证推荐人信息
1. 定义数据模型
我们需要定义一个数据模型,来描述推荐人信息,如下:
public class Referrer {
@NotEmpty(message = "姓名不能为空")
private String name;
@Pattern(regexp = "\\d{18}", message = "身份证号格式不正确")
private String idCard;
@Pattern(regexp = "\\d{11}", message = "手机号格式不正确")
private String phoneNumber;
// getter和setter方法省略
}
2. 定义校验规则
我们需要为数据模型中的每个属性设置不同的验证注解,即校验规则,如下:
@NotEmpty
:表示该属性不能为空@Pattern
:表示该属性需要匹配指定的正则表达式
3. 实现校验
接下来,我们需要实现对推荐人信息的校验,并在校验失败时返回错误信息。此处使用了@RequestParam
注解来获取HTTP请求参数。
@RestController
@RequestMapping("/referral")
public class ReferralController {
@GetMapping
public ResponseEntity<String> referral(@Validated Referrer referrer, BindingResult result) {
if (result.hasErrors()) {
return ResponseEntity.badRequest().body(result.getFieldError().getDefaultMessage());
}
// 处理推荐人信息
return ResponseEntity.ok("操作成功!");
}
}
在上面的代码中,我们没有使用@Validated
注解,因为这里只有一个Java对象需要校验。
4. 测试校验结果
接下来,我们可以来模拟一个查询推荐人信息的请求,测试校验结果是否正确。
curl http://localhost:8080/referral?name=&idCard=123456&phoneNumber=12345678901
该请求的返回结果应该为:
"姓名不能为空"
到这里,我们已经完成了关于“Spring Validation实现数据校验的示例”的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Validation实现数据校验的示例 - Python技术站