日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

SpringBoot結合JSR303對前端數據進行校驗的示例代碼

瀏覽:20日期:2023-04-28 14:10:23

一、校驗分類

數據的校驗一般分為**前端校驗、后端校驗**

二、前端校驗

前端校驗是最為明顯的,先說一下:

① HTML

非空校驗 如 HTML5 新增的屬性required='true',一旦沒有填寫就輸入框就顯示紅色,具體使用如:

<input type='text' name='name' required='true'/>

② JS

同時在提交表單發送 Ajax請求 的時候,來個 onSubmit 函數,具體例如(使用點 EasyUI ):

function submitData(){$('#fm').form('submit',{url:'/admin/film/save',onSubmit:function(){var content=CKEDITOR.instances.content.getData();if(content==''){$.messager.alert('系統提示','內容不能為空!');return false;}return $(this).form('validate');},success:function(result){var result=eval(’(’+result+’)’);if(result.success){$.messager.alert('系統提示','保存成功!');resetValue();}else{$.messager.alert('系統提示','保存失敗!');}}});}

但我們都知道,這是防君子不防小人的做法,用戶可以使用 F12,查看源碼,修改關鍵部位的代碼,如把 required='true' 刪除掉,就可以提交表單了。所以前端作用雖然明顯,但是數據處理方面,真正用處并不大。

三、后端校驗

前面說了那么多,就是為了引出 后端校驗 這一話題。數據是否提交到數據庫中去,就看后端的代碼了。后端校驗,主要實施在 JavaBean、Controller 中。下面列舉一個簡單的例子,從代碼中說明一切。

① 代碼結構圖

SpringBoot結合JSR303對前端數據進行校驗的示例代碼

② entity

實體屬性部位空,一般使用如 @NotEmpty(message='請輸入用戶名!') ,這樣既不能為 空 ,也不能為null

package com.cun.entity;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import javax.validation.constraints.Max;import javax.validation.constraints.Min;import javax.validation.constraints.NotNull;import javax.validation.constraints.Null;import javax.validation.constraints.Size;import org.hibernate.validator.constraints.Email;import org.hibernate.validator.constraints.NotBlank;import io.swagger.annotations.ApiModelProperty;@Entity@Table(name = 't_person')public class Person {@Id@GeneratedValue@ApiModelProperty(value = '用戶id')private Integer id;@NotBlank(message = '用戶名不能為空') // 為''/’’都不行@Size(min = 2, max = 30, message = '2<長度<30')@Column(length = 50)@ApiModelProperty(value = '用戶名')private String userName;@NotNull(message = '用戶密碼不能為空')@Column(length = 50)@ApiModelProperty(value = '用戶密碼')private String password;@Max(value = 150, message = 'age應<150') // 數字@Min(value = 1, message = 'age應>1') // 數字@NotNull(message = '年齡不能為空')@ApiModelProperty(value = '用戶年齡')private Integer age;@NotNull(message = '郵箱不為空')@Email(message = '郵件格式不對')@Column(length = 100)@ApiModelProperty(value = '用戶郵箱')private String email;// 使用 JPA 必備public Person() {super();}public Integer getId() {return id;}public void setId(Integer 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;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}

③ dao

其實也沒什么代碼,這就是 JPA 的強大之處

package com.cun.dao;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.JpaSpecificationExecutor;import com.cun.entity.Person;public interface PersonDao extends JpaRepository<Person, Integer>, JpaSpecificationExecutor<Person> {}

④ Service、ServiceImpl (省略)

⑤ Controller

package com.cun.controller;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.validation.Valid;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.validation.BindingResult;import org.springframework.validation.ObjectError;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.cun.dao.PersonDao;import com.cun.entity.Person;import springfox.documentation.swagger2.annotations.EnableSwagger2;@RestController@RequestMapping('/person')@EnableSwagger2public class PersonController {@Autowiredprivate PersonDao personDao;@PostMapping('/insert')public Map<String, Object> insertPerson(@Valid Person person, BindingResult bindingResult) {Map<String, Object> map = new HashMap<String, Object>();if (bindingResult.hasErrors()) {List<ObjectError> errorList = bindingResult.getAllErrors();List<String> mesList=new ArrayList<String>();for (int i = 0; i < errorList.size(); i++) {mesList.add(errorList.get(i).getDefaultMessage());}map.put('status', false);map.put('error', mesList);} else {map.put('status', true);map.put('msg', '添加成功');personDao.save(person);}return map;}}

⑥ yml

server: port: 80 #為了以后訪問項目不用寫端口號 context-path: / #為了以后訪問項目不用寫項目名spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/springboot username: root password: 123 jpa: hibernate: ddl-auto: update #數據庫同步代碼 show-sql: true #dao操作時,顯示sql語句

⑦ POM

使用 SpringBoot Starter 導入 JPA、MySQL

SpringBoot結合JSR303對前端數據進行校驗的示例代碼

使用 Swagger 演示

<!-- swagger生成接口API --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><!-- 接口API生成html文檔 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.6.1</version></dependency>

四、演示

輸入 http://localhost/swagger-ui.html 進入接口測試站點

SpringBoot結合JSR303對前端數據進行校驗的示例代碼

什么都沒有填寫,直接點擊Try it out!,可以看到返回給前端的 JSON 數據,這時候數據的數據是沒有改動的,一條sql 語句都沒有執行

SpringBoot結合JSR303對前端數據進行校驗的示例代碼

當然還可以進行其他測試,這里就省略了

到此這篇關于SpringBoot結合JSR303對前端數據進行校驗的示例代碼的文章就介紹到這了,更多相關SpringBoot JSR303校驗內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久夜夜夜| 国产精品欧美一区二区三区不卡| 国产精品主播| 国产精品一区二区中文字幕| 一区二区三区四区日韩| 亚洲欧美在线综合| 色婷婷成人网| 18国产精品| 国产精品一区免费在线| 欧美影院精品| 久久男人天堂| 日韩免费视频| 欧美午夜精品一区二区三区电影| 91精品国产乱码久久久久久久| 日韩啪啪电影网| 久久影院一区| 视频一区视频二区中文字幕| 日韩精品电影一区亚洲| 国产精品亚洲欧美一级在线| 91伊人久久| 久久尤物视频| 日韩成人高清| 最新日韩欧美| 91成人精品在线| 成人精品高清在线视频| 久久精品电影| 视频一区欧美日韩| 欧美日韩va| a天堂资源在线| 亚洲女同一区| 日韩精品社区| 日韩av在线播放网址| 香蕉国产精品| 日韩精品国产欧美| 里番精品3d一二三区| 亚洲播播91| 亚洲日本国产| 丰满少妇一区| 国产一区导航| 蜜臀久久99精品久久久画质超高清 | av亚洲一区二区三区| 欧美~级网站不卡| 亚洲人成亚洲精品| 国产一区二区三区精品在线观看 | 亚洲国产综合在线看不卡| 国产美女一区| 免费在线成人| 免费观看久久av| 日韩精品一页| 99久久夜色精品国产亚洲1000部| 亚洲三级av| 日韩不卡一区| 久久亚洲风情| 美女视频黄 久久| 国产精品av久久久久久麻豆网| 日本亚洲三级在线| 在线亚洲人成| 日韩一区二区三区免费视频| 日韩国产欧美一区二区| 亚洲精品少妇| 亚洲深夜视频| 亚洲精品第一| 电影天堂国产精品| 欧美精品国产| 好吊一区二区三区| 精品一区二区三区免费看| 欧美国产一级| 欧美日韩va| 欧美日韩尤物久久| 日本vs亚洲vs韩国一区三区二区| 超级白嫩亚洲国产第一| 亚洲精品高潮| 在线成人动漫av| 91精品丝袜国产高跟在线| 91精品国产成人观看| 日韩成人一级| 婷婷亚洲五月| 日产午夜精品一线二线三线| 日韩中文字幕在线一区| 欧美性感美女一区二区 | 日韩和欧美一区二区三区| 色一区二区三区| 久久国产免费看| 国产视频久久| 啪啪国产精品| 精品一区二区男人吃奶 | 日韩在线观看| 国产图片一区| 蜜桃传媒麻豆第一区在线观看| 日韩国产在线| 国产精品第十页| 亚洲精品进入| 国产精品毛片一区二区三区| 天堂中文av在线资源库| 国产伦精品一区二区三区在线播放| 在线一区电影| 电影天堂国产精品| 四虎成人av| 欧美视频精品全部免费观看| 亚洲欧美高清| 国内亚洲精品| 中文在线中文资源| 久久精品国产99国产| 91精品麻豆| 亚洲欧美视频| 日韩午夜av| 欧美在线资源| 精品一区在线| 欧美影院三区| 天堂资源在线亚洲| 久久久精品网| 亚洲爱爱视频| 日韩精品专区| 日韩影院二区| av中文资源在线资源免费观看| 精品欠久久久中文字幕加勒比| 国产精品一区二区精品| 国产精品中文字幕亚洲欧美| 国产日韩欧美一区| 欧美日韩亚洲一区三区| 欧美日韩亚洲三区| 国产毛片精品久久| 久久av电影| 国产成人精品亚洲线观看| 理论片午夜视频在线观看| 亚洲一级少妇| 亚洲91精品| 91成人精品视频| 999在线观看精品免费不卡网站| 国产一区欧美| 99国产精品久久久久久久| 精品91久久久久| 美女精品在线观看| 日韩在线成人| 国产伦理久久久久久妇女| 麻豆成人综合网| 国产美女高潮在线| 日韩三区免费| 亚洲二区三区不卡| 免费视频最近日韩| 一区二区精品| 欧美日韩一区自拍| 久久亚洲精品中文字幕| 国产精品13p| 99视频精品视频高清免费| 久久久久久黄| 国产亚洲毛片在线| 亚洲狼人精品一区二区三区| 日本欧美一区| 国产一区二区三区网| 欧美在线观看视频一区| 亚洲涩涩av| 国产精品**亚洲精品| 日韩av在线中文字幕| 欧美亚洲国产激情| 一区二区国产在线| 欧美黄色一区二区| 亲子伦视频一区二区三区| 欧美在线综合| 国产精品毛片视频| 岛国av在线网站| 亚洲免费黄色| 日本视频中文字幕一区二区三区| 久久精品亚洲| 欧美精品羞羞答答| 亚洲ww精品| 美女国产精品久久久| 亚洲香蕉网站| 亚州精品视频| 日韩成人精品一区| 免费在线观看一区二区三区| 麻豆精品新av中文字幕| 欧美日韩在线播放视频| 91精品国产经典在线观看| 日韩免费在线| 热久久国产精品| 久久久久久久欧美精品| 国产免费av一区二区三区| 中国字幕a在线看韩国电影| 日韩在线a电影| 精品视频一区二区三区在线观看 | 成人午夜在线| 国产亚洲久久| 高清精品久久| 伊人久久亚洲影院| 国产日韩欧美一区二区三区在线观看| 亚洲黄色免费av| 深夜福利亚洲| 综合日韩av| 亚洲色图综合| 日本在线精品| 日本亚洲视频在线| 色婷婷狠狠五月综合天色拍| 日日夜夜免费精品视频| 在线天堂资源www在线污| 日韩精品视频中文字幕| 久久久久久久久久久9不雅视频| 日韩欧美激情| 久久精品影视| 国产高清精品二区|