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);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM