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);
        }
    }
  • 相关阅读:
    对话框
    枚举、联合
    WinCE 应用程序开机自启动方法
    调用directshow出现链接错误
    修改了WINCE自带的驱动程序后如何编译
    如何设置WINCE系统字体、字号?如何设置自己开发的软件的字体、字号
    在不采用硬件计时器的情况下如何创建更精确的计时器
    驱动程序如何发通知给应用程序
    如何得到WAV文件播放的总时间
    解决CE6和CE5在Platform Builder的Connectivity Options上的冲突
  • 原文地址:https://www.cnblogs.com/aston/p/7256553.html
Copyright © 2011-2022 走看看