成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

基于SpringBoot服務端表單數據校驗的實現方式

瀏覽:4日期:2023-04-16 11:04:15

SpringBoot服務端表單數據校驗

(SpringBoot高級)

一、實現添加用戶功能

1 創建項目

基于SpringBoot服務端表單數據校驗的實現方式

2 修改POM文件

<project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.10.RELEASE</version> </parent> <groupId>com.bjsxt</groupId> <artifactId>13-spring-boot-validate</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <java.version>1.7</java.version> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> <thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version> </properties> <dependencies> <!-- springBoot的啟動器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- thymeleaf的啟動器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies></project>

3 編寫添加用戶功能

3.1 創建實體類

publicclass Users { private String name; private String password; private Integer age; public String getName() { returnname; } publicvoid setName(String name) { this.name = name; } public String getPassword() { returnpassword; } publicvoid setPassword(String password) { this.password = password; } public Integer getAge() { returnage; } publicvoid setAge(Integer age) { this.age = age; } @Override public String toString() { return'Users [name=' + name + ', password=' + password + ', age=' + age + ']'; } }

3.2 編寫Controller

/** * SpringBoot 表單數據校驗 * * */@Controllerpublicclass UsersController { @RequestMapping('/addUser') public String showPage(){ return'add'; } /** * 完成用戶添加 */ @RequestMapping('/save') public String saveUser(Users users){ System.out.println(users); return'ok'; }}

3.3 編寫頁面add.html ok.html

<!DOCTYPE html><html><head><meta charset='UTF-8'><title>添加用戶</title></head><body> <form th:action='@{/save}' method='post'> 用戶姓名:<input type='text' name='name'/><br/> 用戶密碼:<input type='password' name='password' /><br/> 用戶年齡:<input type='text' name='age' /><br/> <input type='submit' value='OK'/> </form></body></html><!DOCTYPE html><html><head><meta charset='UTF-8'><title>操作成功</title></head><body> OK。。。。</body></html>二、SpringBoot對表單做數據校驗

1 SpringBoot對表單數據校驗的技術特點

1.1 SpringBoot中使用了Hibernate-validate校驗框架

2 SpringBoot表單數據校驗步驟

2.1 在實體類中添加校驗規則

publicclass Users { @NotBlank//非空校驗 private String name; @NotBlank//密碼非空校驗 private String password; private Integer age; public String getName() { returnname; } publicvoid setName(String name) { this.name = name; } public String getPassword() { returnpassword; } publicvoid setPassword(String password) { this.password = password; } public Integer getAge() { returnage; } publicvoid setAge(Integer age) { this.age = age; } @Override public String toString() { return'Users [name=' + name + ', password=' + password + ', age=' + age + ']'; } }

2.2 在Controller中開啟校驗

/** * 完成用戶添加 *@Valid開啟對Users對象的數據校驗 *BindingResult:封裝了校驗的結果 */ @RequestMapping('/save') public String saveUser(@Valid Users users,BindingResult result){ if(result.hasErrors()){ return'add'; } System.out.println(users); return'ok'; }

2.3 在頁面中獲取提示信息

<!DOCTYPE html><html><head><meta charset='UTF-8'><title>添加用戶</title></head><body> <form th:action='@{/save}' method='post'> 用戶姓名:<input type='text' name='name'/><font color='red' th:errors='${users.name}'></font><br/> 用戶密碼:<input type='password' name='password' /><font color='red' th:errors='${users.password}'></font><br/> 用戶年齡:<input type='text' name='age' /><font color='red' th:errors='${users.age}'></font><br/> <input type='submit' value='OK'/> </form></body></html>

2.4 遇到異常

在jsp當中,如果一個對象根本不存在,那么他仍然可以在jsp頁面進行遍歷,只不過為空,不顯示而已,但是在thymeleaf當中,如果說這個對象不存在,他就會報以下錯誤,解決問題的辦法就是在controller中的方法上的傳遞參數加上這個對象,以便在thymeleaf視圖層當中,告知這個對象是存在于的

基于SpringBoot服務端表單數據校驗的實現方式

三、解決數據校驗時的異常問題

解決異常的方法,在跳轉頁面的方法中注入一個對象,來解決問題。要求參數對象的變量名必須是對象的類名的全稱首字母小寫。

在springboot 1.5當中,參數變量必須是對象類的名稱首字母小寫,但是在springboot2.0以上,已經很大程度上優化了這個問題,變量名稱隨便寫,因為在跳轉頁面的時候,將該對象放入到Model當中傳遞,他的key 就是對象的類的全程首字母大寫(默認),在thymeleaf當中取出這個值的時候,他的key為對象的類的全程首字母大寫,與參數的變量名無任何關系 如果非要更改Model當中的key值,一下有詳解

代碼

/** * 解決異常的方式。可以在跳轉頁面的方法中注入一個Uesrs對象。 * 注意:由于springmvc會將該對象放入到Model中傳遞。key的名稱會使用該對象的駝峰式的命名規則來作為key。 * 參數的變量名需要與對象的名稱相同。將首字母小寫。 * * @param users * @return */ @RequestMapping('/addUser') public String showPage( Users users){ return'add'; }/** * 完成用戶添加 *@Valid開啟對Users對象的數據校驗 *BindingResult:封裝了校驗的結果 */ @RequestMapping('/save') public String saveUser( @Valid Users users,BindingResult result){ if(result.hasErrors()){ return'add'; } System.out.println(users); return'ok'; }

<!DOCTYPE html><html><head><meta charset='UTF-8'><title>添加用戶</title></head><body> <form th:action='@{/save}' method='post'> 用戶姓名:<input type='text' name='name'/><font color='red' th:errors='${users.name}'></font><br/> 用戶密碼:<input type='password' name='password' /><font color='red' th:errors='${users.password}'></font><br/> 用戶年齡:<input type='text' name='age' /><font color='red' th:errors='${users.age}'></font><br/> <input type='submit' value='OK'/> </form></body></html>

如果參數的名稱需要做改變

/** * * 如果想為傳遞的對象更改名稱,可以使用@ModelAttribute('aa')這表示當前傳遞的對象的key為aa。 * 那么我們在頁面中獲取該對象的key也需要修改為aa * @param users * @return */ @RequestMapping('/addUser') public String showPage(@ModelAttribute('aa') Users users){ return'add'; }/** * 完成用戶添加 *@Valid開啟對Users對象的數據校驗 *BindingResult:封裝了校驗的結果 */ @RequestMapping('/save') public String saveUser(@ModelAttribute('aa') @Valid Users users,BindingResult result){ if(result.hasErrors()){ return'add'; } System.out.println(users); return'ok'; }

<!DOCTYPE html><html><head><meta charset='UTF-8'><title>添加用戶</title></head><body> <form th:action='@{/save}' method='post'> 用戶姓名:<input type='text' name='name'/><font color='red' th:errors='${aa.name}'></font><br/> 用戶密碼:<input type='password' name='password' /><font color='red' th:errors='${aa.password}'></font><br/> 用戶年齡:<input type='text' name='age' /><font color='red' th:errors='${aa.age}'></font><br/> <input type='submit' value='OK'/> </form></body></html>四、其他校驗規則

@NotBlank: 判斷字符串是否為null或者是空串(去掉首尾空格)。

@NotEmpty: 判斷字符串是否null或者是空串。

@Length: 判斷字符的長度(最大或者最小)

@Min: 判斷數值最小值

@Max: 判斷數值最大值

@Email: 判斷郵箱是否合法

補充知識:控制Configuration是否生效,使用Springboot中@ConditionalOnProperty注解

介紹

@ConditionalOnProperty注解的作用是來控制Configuration是否生效

通過其兩個屬性name以及havingValue來實現的,其中name用來從application.properties中讀取某個屬性值。

matchIfMissing來控制默認值

如果值不為空,則將該值與havingValue指定的值進行比較,如果一樣則返回true;否則返回false。

如果返回值為false,則該configuration不生效;為true則生效。

使用

shardingjdbc中可以控制是否啟用,這樣可以針對某個配置來啟動數據源,完全不影響代碼實現,想完成這個功能就要用到Stringboot提供的注解@ConditionalOnProperty

基于SpringBoot服務端表單數據校驗的實現方式

因為默認是true,所以使用可以忽略,但是如果不需要使用,禁用則需要增加配置

spring.shardingsphere.enabled=false

以上這篇基于SpringBoot服務端表單數據校驗的實現方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产高清精品久久久久| 亚洲视频免费在线| 国产日韩亚洲欧美综合| 国模娜娜一区二区三区| 国产伦精品一区二区三区| 国产精品妹子av| 99麻豆久久久国产精品免费| 91精品国产综合久久婷婷香蕉 | 日韩国产欧美三级| 小嫩嫩精品导航| 亚洲与欧洲av电影| 亚洲综合社区| 亚洲v中文字幕| 美女日韩在线中文字幕| 亚洲第一成年网| 在线视频欧美一区| 一区二区高清在线| 久久国产精品毛片| 视频一区免费在线观看| 久久久人人人| 蜜桃视频在线观看一区| 在线日韩av片| 久久精品国产精品亚洲精品| 色999日韩国产欧美一区二区| 免费三级欧美电影| 欧美日本在线播放| 国产精品麻豆99久久久久久| 亚洲福利久久| 亚洲精品成人在线| 亚洲一区一卡| 日本大胆欧美人术艺术动态| 色婷婷av一区二区三区软件| 久久99精品久久久久久国产越南| 欧美三级在线播放| 国产精品综合av一区二区国产馆| 欧美日本一区二区| 成人av在线影院| 久久久亚洲精品石原莉奈| 99精品欧美一区二区蜜桃免费| 久久久久久久久岛国免费| 欧美人成网站| 一卡二卡三卡日韩欧美| 91福利精品视频| 激情丁香综合五月| 久久久综合九色合综国产精品| 黄色日韩在线| 亚洲成人免费av| 欧美在线综合视频| 国产a精品视频| 欧美国产视频在线| 亚洲国产精品一区二区第一页| 亚洲精品视频在线观看免费| 久久先锋影音| 国产在线精品一区在线观看麻豆| 欧美www视频| 亚洲国产mv| 亚洲成人久久影院| 欧美一级一区二区| 亚洲天堂偷拍| 日韩国产欧美三级| 欧美一级午夜免费电影| 欧美人成网站| 亚洲高清久久久| 51午夜精品国产| 欧美日韩午夜| 亚洲国产一区在线观看| 欧美色欧美亚洲另类二区| 99久久精品一区| 亚洲视频香蕉人妖| 欧美视频中文一区二区三区在线观看| 不卡视频在线观看| 亚洲国产日韩a在线播放性色| 欧美高清视频一二三区 | 亚洲欧洲日本一区二区三区| 日本在线不卡一区| 亚洲精品一区二区三区在线观看| 亚洲午夜精品一区二区| 水野朝阳av一区二区三区| 日韩欧美中文一区| 欧美日韩国产综合视频在线| 亚洲成精国产精品女| 欧美成人vps| 亚洲看片一区| 国模无码大尺度一区二区三区| 欧美极品美女视频| 欧洲色大大久久| 91女神在线视频| 日韩精品电影在线| www久久精品| 国产农村妇女毛片精品久久莱园子| 国产精品影音先锋| 亚洲国产综合色| 久久亚洲综合av| 欧美性受xxxx| 欧美午夜电影在线观看| 久久国产精品区| 亚洲欧美日韩一区| 欧美一区永久视频免费观看| 日韩午夜黄色| 成人小视频免费观看| 亚洲高清三级视频| 国产亚洲欧美在线| 欧日韩精品视频| 亚洲激情精品| 成人激情电影免费在线观看| 日本欧美在线看| 亚洲特黄一级片| 欧美一级久久久| 久久亚洲高清| 欧美va天堂在线| 美国十次综合导航| 日韩女优av电影| 在线国产亚洲欧美| 一本一本久久| 91亚洲精品一区二区乱码| 美女网站色91| 亚洲国产视频a| 欧美激情一区二区三区不卡| 欧美日韩免费高清一区色橹橹| 亚洲高清在线| 北条麻妃国产九九精品视频| 青青草一区二区三区| 亚洲色图一区二区三区| 欧美精品一区二区三区在线| 快she精品国产999| 波多野结衣在线一区| 秋霞影院一区二区| 一级精品视频在线观看宜春院 | 精品乱码亚洲一区二区不卡| 在线观看91视频| 国产日韩欧美高清免费| 国产精品v亚洲精品v日韩精品| 极品美女销魂一区二区三区| 亚洲午夜精品网| 国产精品毛片高清在线完整版| 欧美三级韩国三级日本三斤| 国产亚洲成人一区| 亚洲天堂激情| 91亚洲精品久久久蜜桃| 国产成人自拍网| 奇米一区二区三区| 天天影视色香欲综合网老头| 亚洲码国产岛国毛片在线| 国产欧美日韩另类一区| 精品国产91洋老外米糕| 9191久久久久久久久久久| 91官网在线观看| 久久久久免费| 久久不射2019中文字幕| 亚洲欧洲日本一区二区三区| 欧美午夜久久| 欧美日韩 国产精品| 99re在线精品| 暴力调教一区二区三区| 成人av电影观看| www.色综合.com| 成人app网站| 波多野结衣的一区二区三区| 国产成人精品免费网站| 国产传媒日韩欧美成人| 国产精选一区二区三区| 国产最新精品精品你懂的| 美国av一区二区| 久久精品国产精品青草| 男女男精品视频| 日韩不卡在线观看日韩不卡视频| 天天操天天干天天综合网| 亚洲成人av福利| 亚洲成人1区2区| 日韩成人免费在线| 六月丁香综合在线视频| 久久精品99久久久| 国内国产精品久久| 国产精品亚洲综合一区在线观看| 国产精品18久久久久久久久| 国产成人啪免费观看软件| 成人看片黄a免费看在线| 成人福利电影精品一区二区在线观看| 丁香婷婷综合网| 成人黄色小视频| 91在线观看污| 国内久久视频| 亚洲国产精品一区| 国产精品一二| 色菇凉天天综合网| 欧美体内she精视频| 在线播放中文字幕一区| 日韩三区在线观看| 久久久久久综合| 中文字幕一区在线观看| 一区二区三区小说| 爽好多水快深点欧美视频| 久久99久久99小草精品免视看| 国产成人高清在线| av资源站一区| 亚洲一级电影| 欧美专区18| 欧美手机在线视频| 日韩精品一区二区三区在线播放| 国产欧美日韩在线观看|