文章出自视频:https://www.imooc.com/learn/810
跟着廖师兄的视频学习的哈,例子有点儿那个啥,内容还是不错的,我也就不换了。学完后记点儿笔记,方便以后忘记了过来查看。
功能:禁止年龄大于18岁的女孩子入内。
步骤:
1.进入到Girl对象里面,找到年龄,在年龄上面加入注解“@Min(value = 18, message = "未成年少女禁止入内")”
2.到对应的方法里面加入“@Valid Girl girl, BindingResult bindingResult”表示需要验证girl对象,并将验证完的结果返回到bindingResult对象里面。
直接上代码:Girl.java
package com.haiyu.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.validation.constraints.Min;
@Entity
public class Girl {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String cupSize;
@Min(value = 18, message = "未成年少女禁止入内")
private Integer age;
public Girl() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCupSize() {
return cupSize;
}
public void setCupSize(String cupSize) {
this.cupSize = cupSize;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Girl{" +
"id=" + id +
", cupSize='" + cupSize + '\'' +
", age=" + age +
'}';
}
}
GrilController.java:
package com.haiyu.controller;
import com.haiyu.domain.Girl;
import com.haiyu.domain.Result;
import com.haiyu.repository.GirlRepository;
import com.haiyu.service.GirlService;
import com.haiyu.utils.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.List;
@RestController
public class GirlController {
@Autowired
private GirlRepository girlRepository;
@Autowired
private GirlService girlService;
@GetMapping(value= "/girls")
public List<Girl> girlList(){
return girlRepository.findAll();
}
@PostMapping(value = "/girl")
public Object girlAdd(@Valid Girl girl, BindingResult bindingResult){
if (bindingResult.hasErrors()){
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
}
girl.setAge(girl.getAge());
girl.setCupSize(girl.getCupSize());
return girlRepository.save(girl);
}
}
使用Postman测试,发现控制台会打印“未成年少女禁止入内”。