欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

<!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> 

需要驗(yàn)證提交上去的用戶(hù)名,密碼。是否為空,以及其他的一些問(wèn)題。我們需要怎么做呢?

首先我們需要一個(gè)實(shí)體類(lèi):User類(lèi),存儲(chǔ)表單提交上來(lái)的數(shù)據(jù):

public class User { 
  
 private int id; 
  
 @NotEmpty(message="用戶(hù)名不能為空") 
 private String username; 
  
 @NotEmpty(message="密碼不能為空") 
 @Length(min=6, message="密碼長(zhǎng)度不能少于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的值,指示如果不符合的話(huà),會(huì)得到什么message。

接下來(lái)編寫(xiě)Controller類(lèi):使用@Valid注解驗(yàn)證數(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("注冊(cè).."); 
  return user; 
 } 
 
} 

這樣就完成了一個(gè)簡(jiǎn)單的表單驗(yàn)證。

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

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

總結(jié)

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

相關(guān)文章

  • IDEA實(shí)用好用插件推薦及使用方法教程詳解(必看)

    IDEA實(shí)用好用插件推薦及使用方法教程詳解(必看)

    這篇文章主要介紹了IDEA實(shí)用好用插件推薦及使用方法教程,本文通過(guò)實(shí)例截圖相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 解決spring boot 1.5.4 配置多數(shù)據(jù)源的問(wèn)題

    解決spring boot 1.5.4 配置多數(shù)據(jù)源的問(wèn)題

    下面小編就為大家?guī)?lái)一篇解決spring boot 1.5.4 配置多數(shù)據(jù)源的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 在SpringBoot中無(wú)縫整合Dubbo的實(shí)現(xiàn)過(guò)程

    在SpringBoot中無(wú)縫整合Dubbo的實(shí)現(xiàn)過(guò)程

    微服務(wù)架構(gòu)已經(jīng)成為現(xiàn)代應(yīng)用開(kāi)發(fā)的熱門(mén)趨勢(shì),而Dubbo作為一款強(qiáng)大的分布式服務(wù)框架,與Spring?Boot的結(jié)合是構(gòu)建高性能微服務(wù)應(yīng)用的理想選擇,本文將詳細(xì)介紹如何在SpringBoot中無(wú)縫整合Dubbo,需要的朋友可以參考下
    2024-01-01
  • 詳解spring-boot集成elasticsearch及其簡(jiǎn)單應(yīng)用

    詳解spring-boot集成elasticsearch及其簡(jiǎn)單應(yīng)用

    本篇文章主要介紹了詳解spring-boot集成elasticsearch及其簡(jiǎn)單應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • springboot2.x 接入阿里云市場(chǎng)短信發(fā)送的實(shí)現(xiàn)

    springboot2.x 接入阿里云市場(chǎng)短信發(fā)送的實(shí)現(xiàn)

    本文主要介紹了springboot2.x 接入阿里云市場(chǎng)短信發(fā)送的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • springboot2+es7使用RestHighLevelClient的示例代碼

    springboot2+es7使用RestHighLevelClient的示例代碼

    本文主要介紹了springboot2+es7使用RestHighLevelClient的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SpringBoot詳細(xì)分析自動(dòng)裝配原理并實(shí)現(xiàn)starter

    SpringBoot詳細(xì)分析自動(dòng)裝配原理并實(shí)現(xiàn)starter

    相對(duì)于傳統(tǒng)意義上的Spring項(xiàng)目,SpringBoot具有開(kāi)箱即用,簡(jiǎn)化配置,內(nèi)置Tomcat等等等等一系列的特點(diǎn)。在這些特點(diǎn)中,最重要的兩條就是約定優(yōu)于配置和自動(dòng)裝配
    2022-07-07
  • Java class文件格式之?dāng)?shù)據(jù)類(lèi)型_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java class文件格式之?dāng)?shù)據(jù)類(lèi)型_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java class文件格式之?dāng)?shù)據(jù)類(lèi)型的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 深入解讀分布式事務(wù)Seata的XA模式

    深入解讀分布式事務(wù)Seata的XA模式

    這篇文章主要介紹了深入解讀分布式事務(wù)Seata的XA模式,XA 規(guī)范 描述了全局的事務(wù)管理器與局部的資源管理器之間的接口,XA規(guī)范 的目的是允許的多個(gè)資源在同一事務(wù)中訪(fǎng)問(wèn),這樣可以使 ACID 屬性跨越應(yīng)用程序而保持有效,需要的朋友可以參考下
    2023-08-08
  • Hibernate5新特性介紹

    Hibernate5新特性介紹

    hibernate5中有了一些新的變動(dòng),下面腳本之家小編把Hibernate5新特性相關(guān)知識(shí),分享到腳本之家平臺(tái),感興趣的朋友參考下吧
    2017-09-09

最新評(píng)論