SpringMVC4.3x教程之六验证Validator详解
来源:互联网 发布:医疗产业化 知乎 编辑:程序博客网 时间:2024/05/16 15:02
SpringMVC支持对上传的内容进行校验,Validator接口,目的就是实现校验的功能。
我们在控制器的映射方法中可以写一些自定义类型的参数,那么我们需要对这样的对象进行属性的校验就可以使用校验器啦。
比如,我有一个新闻类
public class News { private int id; private String content;//新闻内容 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { this.content = content; }}
自定义校验器
@Servicepublic class NewsValidation implements Validator{ @Override public boolean supports(Class<?> clz) { // TODO Auto-generated method stub return News.class.equals(clz); } @Override public void validate(Object obj, Errors errors) { // TODO Auto-generated method stub News news=(News) obj; //参数说明:1、错误对象2、属性名3、国际化的key4、提示信息 ValidationUtils.rejectIfEmpty(errors, "content", null, "内容不能为空"); if(news.getId()<1 ){ errors.rejectValue("id",null, "序号不能小于1"); } if(!news.getContent().matches("[a-zA-Z]{10,}")) { errors.rejectValue("content", null, "内容只能是字母组成,最少10位"); } }}
控制器:
@Controllerpublic class NewsController { //注入校验器对象 @Autowired private NewsValidation nv; @ModelAttribute("news") public News pre(){ return new News(); } //添加自定义校验器 @InitBinder public void test3(DataBinder dataBinder){ dataBinder.replaceValidators(nv); } @RequestMapping("/vtest") public String test1(){ return "validatortest"; } //校验的方法,注意2个参数要挨着 @RequestMapping("/validtor") public String test2(@Validated News news,Errors errors){ return "validatortest"; }}
页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="f" uri="http://www.springframework.org/tags/form" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>SpringMVC的表单校验</title><style type="text/css">.error{color: red;font-size: 12px;}</style></head><body><h1>SpringMVC的表单校验</h1><div><f:form action="validtor" commandName="news">序号:<f:input path="id"/><f:errors cssClass="error" path="id"></f:errors><br/>内容:<f:input path="content"/><f:errors cssClass="error" path="content"></f:errors><br/><f:button>校验</f:button></f:form></div></body></html>
阅读全文
0 0
- SpringMVC4.3x教程之六验证Validator详解
- SpringMVC4.3x教程之七国际化的三种实现详解
- SpringMVC4.3x教程之一基本使用详解
- SpringMVC4.3x教程之二常用注解说明
- SpringMVC4.3x教程之三拦截器的使用
- SpringMVC4.3x教程之九RESTFul使用
- Spring4.3x教程之六注解详解
- SpringMVC4.3x教程之五SpringMVC表单标签的使用
- SpringMVC4.3x教程之八异常的三种处理方式
- Struts1.x系列教程(10):Validator验证框架入门
- Struts1.x系列教程(10):Validator验证框架入门
- Struts1.x系列教程(10):Validator验证框架入门
- springmodules之Commons Validator验证之具体详解
- Struts1.x系列教程(12):Validator验证框架的内置标准验证
- Struts1.x系列教程(12):Validator验证框架的内置标准验证
- Struts1.x系列教程(12):Validator验证框架的内置标准验证
- Validator验证框架使用教程
- jQuery.validator 验证规则详解
- 【视频开发】Cximage<---->Mat 、Cximage<---->lplImage 以及 lplImage<----->Mat的转换、像素位深度
- 系统管理员应该知道的20条Linux命令
- Android UI之TextView使用
- Gradle: 错误: -source 1.7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)
- 【POJ 1258】Agri-Net(最小生成树-水题)
- SpringMVC4.3x教程之六验证Validator详解
- 在struts2中向值栈存放数据的3种方式
- 解读Top-Down Modulation for object detection
- servlet/jsp(一) 原理和关系
- 【视频开发】四大图像库:OpenCV/FreeImage/CImg/CxImage
- 浅谈this绑定
- SqueezeDet:一种应用于自动驾驶实时目标检测中的标准、小型、低功耗的全卷积神经网络(一)
- 为什么要设置环境变量,设置环境变量的作用在哪里
- 渗透攻防Web篇-SQL注入攻击初级 1