Spring Boot 表单自定义验证

在Spring Boot中,如果我们需要访问后台数据进行验证,可以自定义验证,下面是一个自定义登录验证,当uid在数据库中存在时,验证失败

前提条件:表单功能已经写好

  1. 新建自定义验证的类RegisterValidators
package com.oneonone.validators;

import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import com.oneonone.entities.Customer;
import com.oneonone.forms.CustomerForm;
import com.oneonone.services.CustomerServices;

@Component
public class RegisterValidators implements Validator {

	private CustomerServices customerServices;
	
	public RegisterValidators(CustomerServices customerServices) {
		this.customerServices = customerServices;
	}
	
	@Override
	public boolean supports(Class<?> clazz) {
		// TODO Auto-generated method stub
		return CustomerForm.class.equals(clazz);
	}

	@Override
	public void validate(Object target, Errors errors) {
		// TODO Auto-generated method stub
		CustomerForm userForm = (CustomerForm)target;
		String uid = userForm.getUid();
		String pwd = userForm.getPwd();
		
		//uid为空
		if(uid==null || uid.isEmpty()) {//uid 为空
			errors.rejectValue("uid", "uid.required");
		}else {
			Customer customer = customerServices.findCustomerByID(uid);
			if(customer != null) {
				errors.rejectValue("uid", "uid.reduplicated");
			}
		}
		
		//password为空
		if(!StringUtils.hasText(pwd)) {
			errors.rejectValue("pwd", "password.required");
		}
		
	}

}

  1. 将自定义验证类与controller进行绑定
    controller中加入下面方法:
@InitBinder
    public void bindValidator(DataBinder dataBinder) {
        dataBinder.setValidator(new RegisterValidators(customerServices));
    }
  1. 修改表单功能的controller方法,例如注册:
    在这里插入图片描述4. 在页面中加入验证内容,我这里是jsp页面,所以加入如下错误提示代码:
<form:errors path="uid"/>
<form:errors path="pwd"/>

CustomerForm中的两个字段名称必须与path中的内容一致。

推荐视频

玩转Spring Data JPA&Spring Data JDBC

深入浅出SpringCloud

SpringBoot快速入门

Spring MVC快速开发

轻松搞定Spring全家桶(初识篇)

玩转Spring全家桶

推荐文章

系统上线后雪崩!让我们来学习 Spring Cloud Hystrix 及监控来解决雪崩问题

10 分钟教会你 Spring Boot 集成 Thymeleaf、MyBatis 完成产品的增删改查

【高阶用法】一个实例学会 Spring Cloud 的注册中心 Eureka的使用

Spring Cloud gateway与注册中心Eureka的完美集成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot Security 是 Spring Boot 官方提供的安全框架,基于 Spring Security 进行了封装和自动配置。它提供了一系列的安全功能,包括认证、授权和攻击防护等。使用 Spring Boot Security 可以快速地为 Web 应用程序添加安全特性,并且可以轻松地进行自定义配置。 下面是 Spring Boot Security 常用的功能: 1. 认证:Spring Boot Security 提供了多种认证方式,包括基于表单、HTTP Basic、HTTP Digest、OAuth2 等方式。可以根据需求选择不同的认证方式,并且可以自定义认证逻辑。 2. 授权:Spring Boot Security 提供了基于角色和基于权限的授权功能,可以通过注解或者编程方式来实现授权逻辑。 3. CSRF 防护:Spring Boot Security 自动为所有 POST、PUT、DELETE 请求生成 CSRF 令牌,并在表单提交时进行验证,防止跨站请求伪造攻击。 4. XSS 防护:Spring Boot Security 自动对所有输入参数进行 HTML 编码,防止 XSS 攻击。 5. Session 管理:Spring Boot Security 提供了多种 Session 管理方式,包括基于 Cookie、Redis、MongoDB 等方式。可以根据需求选择不同的 Session 管理方式,并且可以自定义 Session 管理逻辑。 6. 监控和审计:Spring Boot Security 提供了多种监控和审计功能,包括登录失败次数限制、登录日志记录、会话过期处理等。可以根据需求选择不同的监控和审计功能。 使用 Spring Boot Security 可以大大简化 Web 应用程序的安全性开发,提高开发效率和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码界领航

你的鼓励将是我最最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值