色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot結(jié)合JSR303對前端數(shù)據(jù)進(jìn)行校驗的示例代碼

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

一、校驗分類

數(shù)據(jù)的校驗一般分為**前端校驗、后端校驗**

二、前端校驗

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

① HTML

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

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

② JS

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

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

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

三、后端校驗

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

① 代碼結(jié)構(gòu)圖

SpringBoot結(jié)合JSR303對前端數(shù)據(jù)進(jìn)行校驗的示例代碼

② 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應(yīng)<150') // 數(shù)字@Min(value = 1, message = 'age應(yīng)>1') // 數(shù)字@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 的強(qiáng)大之處

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 #數(shù)據(jù)庫同步代碼 show-sql: true #dao操作時,顯示sql語句

⑦ POM

使用 SpringBoot Starter 導(dǎo)入 JPA、MySQL

SpringBoot結(jié)合JSR303對前端數(shù)據(jù)進(jìn)行校驗的示例代碼

使用 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 進(jìn)入接口測試站點

SpringBoot結(jié)合JSR303對前端數(shù)據(jù)進(jìn)行校驗的示例代碼

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

SpringBoot結(jié)合JSR303對前端數(shù)據(jù)進(jìn)行校驗的示例代碼

當(dāng)然還可以進(jìn)行其他測試,這里就省略了

到此這篇關(guān)于SpringBoot結(jié)合JSR303對前端數(shù)據(jù)進(jìn)行校驗的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot JSR303校驗內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产a级高清版毛片 | 黄色片免费网址 | 成年人免费观看网站 | 亚洲精品高清视频 | 真实的国产乱xxxx | 免费特级毛片 | 亚洲人成亚洲人成在线观看 | 男人的天堂免费网站 | 国产成人免费高清在线观看 | 欧美aaaaaa| 国产欧美日韩三级 | 热伊人99re久久精品最新地 | 黄色理论视频 | 亚洲一区二区三 | 国内精品久久久久影院亚洲 | 一区二区精品在线 | 国产一级毛片国语版 | 成人亚洲网 | 亚洲天堂手机在线 | 视频在线亚洲 | 国产一区精品 | 老司机免费福利午夜入口ae58 | 国产激情一区二区三区在线观看 | 波多野一区二区 | 色视频在线观看视频 | 国产男女爽爽爽免费视频 | 日本久久精品视频 | 欧美一级毛片欧美一级 | 手机看片自拍自自拍日韩免费 | 久久爰www免费人成 久久曰视频 | 一级a欧美毛片 | a级国产乱理伦片在线 | 亚洲精品日韩在线一区 | 久久免费激情视频 | a级片在线观看免费 | 国产真实乱系列2孕妇 | 黄色国产在线观看 | 国产高清亚洲精品26u | 久久久在线 | 高清性色生活片久久久 | 久久黄网站 |