最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot學(xué)習(xí)入門之表單驗證

 更新時間:2017年09月04日 09:01:59   作者:a60782885  
表單驗證主要是用來防范小白搞亂網(wǎng)站和一些低級的黑客技術(shù)。Spring Boot可以使用注解 @Valid 進行表單驗證。下面這篇文章主要給大家介紹了關(guān)于Spring Boot學(xué)習(xí)入門之表單驗證的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

所謂表單驗證,即校驗用戶提交的數(shù)據(jù)的合理性的,比如是否為空了,密碼長度是否大于6位,是否是純數(shù)字的,等等。spring boot是如何幫我們實現(xiàn)表單驗證的呢?下面話不多說了,來一起看看詳細(xì)的介紹吧。

假設(shè)現(xiàn)在我們存在這么一個注冊界面:

<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="UTF-8" /> 
 <title>hello spring boot</title> 
</head> 
<body> 
 <form action="/doRegister" method="post"> 
  <p>姓名:<input type="text" name="username"/> 
  </p> 
  <p>密碼:<input type="text" name="password"/> 
  </p> 
  <p><button>提交</button></p> 
 </form> 
</body> 
</html> 

需要驗證提交上去的用戶名,密碼。是否為空,以及其他的一些問題。我們需要怎么做呢?

首先我們需要一個實體類:User類,存儲表單提交上來的數(shù)據(jù):

public class User { 
  
 private int id; 
  
 @NotEmpty(message="用戶名不能為空") 
 private String username; 
  
 @NotEmpty(message="密碼不能為空") 
 @Length(min=6, message="密碼長度不能少于6位") 
 private String password; 
 
 public int getId() { 
  return id; 
 } 
 
 public void setId(int id) { 
  this.id = id; 
 } 
 
 public String getUsername() { 
  return username; 
 } 
 
 public void setUsername(String username) { 
  this.username = username; 
 } 
 
 public String getPassword() { 
  return password; 
 } 
 
 public void setPassword(String password) { 
  this.password = password; 
 } 
 
} 

使用@NotEmpty,@Length等注解,添加message的值,指示如果不符合的話,會得到什么message。

接下來編寫Controller類:使用@Valid注解驗證數(shù)據(jù),并且使用BindingResult獲取結(jié)果。

@Controller 
public class FormController { 
 
 @RequestMapping(value="/register", method=RequestMethod.GET) 
 public String register() { 
  return "register"; 
 } 
  
  
 @RequestMapping(value = "/doRegister", method = RequestMethod.POST) 
 public @ResponseBody User doRegister(@Valid User user, BindingResult result, Model model) { 
  if (result.hasErrors()) { 
   List<ObjectError> list = result.getAllErrors(); 
   for (ObjectError error : list) { 
    System.out.println(error.getDefaultMessage()); 
   } 
   return null; 
  } 
  System.out.println("注冊.."); 
  return user; 
 } 
 
} 

這樣就完成了一個簡單的表單驗證。

而除了@NotEmpty,@Length之外,還有很多其他的注解:

  • @null           驗證對象是否為空
  • @notnull     驗證對象是否為非空
  • @asserttrue       驗證 boolean 對象是否為 true
  • @assertfalse     
  • 驗證 boolean 對象是否為 false
  • @min           驗證 number 和 string 對象是否大等于指定的值
  • @max           驗證 number 和 string 對象是否小等于指定的值
  • @decimalmin     驗證 number 和 string 對象是否大等于指定的值,小數(shù)存在精度
  • @decimalmax     驗證 number 和 string 對象是否小等于指定的值,小數(shù)存在精度
  • @size           驗證對象(array,collection,map,string)長度是否在給定的范圍之內(nèi)
  • @digits       驗證 number 和 string 的構(gòu)成是否合法
  • @past           驗證 date 和 calendar 對象是否在當(dāng)前時間之前
  • @future       驗證 date 和 calendar 對象是否在當(dāng)前時間之后
  • @pattern     驗證 string 對象是否符合正則表達式的規(guī)則
  • @Email     驗證郵箱

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 初識Spring Boot框架之Spring Boot的自動配置

    初識Spring Boot框架之Spring Boot的自動配置

    本篇文章主要介紹了初識Spring Boot框架之Spring Boot的自動配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • MyBatis 中 ${}和 #{}的正確使用方法(千萬不要亂用)

    MyBatis 中 ${}和 #{}的正確使用方法(千萬不要亂用)

    這篇文章主要介紹了MyBatis 中 ${}和 #{}的正確使用方法,本文給大家提到了MyBatis 中 ${}和 #{}的區(qū)別,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java中Scanner用法實例解析

    Java中Scanner用法實例解析

    Scanner?指的是java.util包下的Scanner類,可以接收控制臺輸入的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java中Scanner用法實例的相關(guān)資料,文中通過實例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Java?延時隊列及簡單使用方式詳解

    Java?延時隊列及簡單使用方式詳解

    這篇文章主要介紹了Java延時隊列簡單使用方式,通過本文學(xué)習(xí)知道延時隊列是什么可以用來干什么,本文通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • SpringBoot開發(fā)技巧之如何處理跨域請求CORS

    SpringBoot開發(fā)技巧之如何處理跨域請求CORS

    CORS(Cross-Origin Resource Sharing)"跨域資源共享",是一個W3C標(biāo)準(zhǔn),它允許瀏覽器向跨域服務(wù)器發(fā)送Ajax請求,打破了Ajax只能訪問本站內(nèi)的資源限制
    2021-10-10
  • 深入了解Java設(shè)計模式之UML類圖

    深入了解Java設(shè)計模式之UML類圖

    UML?即?Unified?Modeling?Language?統(tǒng)一建模語言,是用來設(shè)計軟件的可視化建模語言。本文就帶大家了解一下UML中類圖的定義與使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • Java可變參數(shù)列表詳解

    Java可變參數(shù)列表詳解

    這篇文章主要介紹了Java可變參數(shù)列表詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 基于spring boot 命令行啟動的一些坑

    基于spring boot 命令行啟動的一些坑

    這篇文章主要介紹了spring boot 命令行啟動的一些坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java求字符串中出現(xiàn)次數(shù)最多的字符串以及出現(xiàn)次數(shù)

    Java求字符串中出現(xiàn)次數(shù)最多的字符串以及出現(xiàn)次數(shù)

    這篇文章主要為大家詳細(xì)介紹了Java統(tǒng)計字符串中出現(xiàn)次數(shù)最多的字符串以及出現(xiàn)次數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Spring需要三個級別緩存解決循環(huán)依賴原理解析

    Spring需要三個級別緩存解決循環(huán)依賴原理解析

    這篇文章主要為大家介紹了Spring需要三個級別緩存解決循環(huán)依賴原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論

巴中市| 浠水县| 洛阳市| 乌拉特后旗| 龙井市| 全州县| 修水县| 遂平县| 克什克腾旗| 石渠县| 高雄市| 滕州市| 山阴县| 全州县| 封开县| 济南市| 高台县| 彭泽县| 定襄县| 绵阳市| 黄陵县| 湖州市| 齐齐哈尔市| 合阳县| 陆河县| 科技| 宁安市| 海阳市| 封丘县| 固镇县| 滨海县| 西乌珠穆沁旗| 信阳市| 临海市| 西和县| 曲阜市| 阿城市| 浦县| 古浪县| 信丰县| 布拖县|