本文共 2387 字,大约阅读时间需要 7 分钟。
拦截所有年龄<18岁的用户
1、实体层定义限制
package cn.edu.shu.ces_chenjie.pojo;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.validation.constraints.Min;@Entitypublic class Person { @Id @GeneratedValue private Integer id; @Min(value = 18,message = "未满18岁禁止访问") private Integer age; private String name; public Person() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Person{" + "id=" + id + ", age=" + age + ", name='" + name + '\'' + '}'; }}
2、Controller层使用Valid进行参数验证,
package cn.edu.shu.ces_chenjie.controller;import cn.edu.shu.ces_chenjie.pojo.Person;import cn.edu.shu.ces_chenjie.repository.PersonRepository;import cn.edu.shu.ces_chenjie.service.PersonService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.validation.BindingResult;import org.springframework.web.bind.annotation.*;import javax.validation.Valid;import java.util.List;@RestControllerpublic class PersonController { @Autowired private PersonRepository repository; @Autowired private PersonService personService; @GetMapping("/persons") public List3、测试personList(){ return repository.findAll(); } //使用@Valid进行验证,验证结果放在BindingResult里面 @PostMapping("/persons") public String personAdd(@Valid Person person,BindingResult bindingResult){ if(bindingResult.hasErrors()){ System.out.println(bindingResult.getFieldError().getDefaultMessage()); return bindingResult.getFieldError().getDefaultMessage(); } person.setAge(person.getAge()); person.setName(person.getName()); return repository.save(person).toString(); } @GetMapping("persons/{name}") public List personListByName(@PathVariable("name")String name){ return repository.findByName(name); } @PostMapping("persons/two") public void personTwo(){ personService.insertTwo(); }}