zoukankan      html  css  js  c++  java
  • Spring Boot学习——表单验证

           我觉得表单验证主要是用来防范小白搞乱网站和一些低级的黑客技术。Spring Boot可以使用注解 @Valid 进行表单验证。下面是一个例子。

           例子说明:数据库增加一条Student记录,要求学生年龄限制在12——20岁之间。

           首先,定义一个Student类,代码如下:

    package *; //自己定义
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.validation.constraints.Max;
    import javax.validation.constraints.Min;
    
    @Entity
    public class Student {
        @Id
        @GeneratedValue
        private Integer id;
        private String name;
        @Min(value = 12,message = "学生年龄最小不能低于12岁")
        @Max(value = 20, message = "学生年龄最大不能高于20岁")
        private Integer age;
    
        public Student(){
        }
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    }

           使用@Min和@Max注解,@Min表示最小值,@Max表示最大值,message是说明。

           其次,定义数据库操作接口StudentRepository,代码如下:

    package *; //自己定义
    
    import com.aston.reader.model.Student;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    import java.util.List;
    
    public interface StudentRepository extends JpaRepository<Student, Integer>{
    }

           最后,使用注解 @Valid 表单验证

    package *; //自己定义
    
            import *.StudentRepository;
            import *.Student;
            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;
    
    @RestController
    public class StudentController {
        @Autowired
        private StudentRepository studentRepository;
    
        /**
         * 添加学生
         * @return
         */
        @PostMapping(value = "/addStudent")
        public Student addStudent(@Valid Student student, BindingResult bindingResult){
            if (bindingResult.hasErrors()){//表单验证,报错
                System.out.println(bindingResult.getFieldError().getDefaultMessage());
                return null;
            }
            student.setAge( student.getAge());
            student.setName( student.getName());
    
            return studentRepository.save( student);
        }
    }
  • 相关阅读:
    2. 开关电源.电感
    1. 开关电源.引子
    资源介绍
    3. EMC EMS EMI
    2. 基于MCU应用的EMC指南
    1. 内部管脚电路
    9.150 Predefined macros
    海康安防平台
    Redis常见配置
    利用python检测单词的相似度
  • 原文地址:https://www.cnblogs.com/aston/p/7256553.html
Copyright © 2011-2022 走看看