电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:3日期: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
相關文章:
主站蜘蛛池模板: 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | CPSE安博会| 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 间苯二酚,间苯二酚厂家-淄博双和化工 | 澳洁干洗店加盟-洗衣店干洗连锁「澳洁干洗免费一对一贴心服务」 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 西安中国国际旅行社(西安国旅) | 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 深圳侦探联系方式_深圳小三调查取证公司_深圳小三分离机构 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 焦作网 WWW.JZRB.COM | 北京网站建设|北京网站开发|北京网站设计|高端做网站公司 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 无机纤维喷涂棉-喷涂棉施工工程-山东华泉建筑工程有限公司▲ | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 篷房[仓储-婚庆-展览-活动]生产厂家-江苏正德装配式帐篷有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 呼末二氧化碳|ETCO2模块采样管_气体干燥管_气体过滤器-湖南纳雄医疗器械有限公司 |