• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot结合JSR303对前端数据进行校验的示例代码

springboot 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

一、校验分类

数据的校验一般分为**前端校验后端校验**

二、前端校验

前端校验是最为明显的,先说一下:

① HTML

非空校验HTML5 新增的属性required="true",一旦没有填写就输入框就显示红色,具体使用如:

<input type="text" id="name" 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来&源gao@dai!ma.com搞$代^码%网,查看源码,修改关键部位的代码,
如把 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;

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;
	}

}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot结合JSR303对前端数据进行校验的示例代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址