SpringBoot结结合合JSR303对对前前端端数数据据进进行行校校验验的的示示例例代代码码
一一、、校校验验分分类类
数据的校验一般分为** 前端校验 、 后端校验 **
二二、、前前端端校校验验
前端校验是最为明显的,先说一 :
①① HT ML
非空校验 如 HTML5 新增的属性 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 中。 面列举一个简单的例子,从代码中说明一切。
①① 代代码码结结构构图图
②② 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;