SpringMvc后台校验实现
来源:互联网 发布:淘宝一分钱购物在哪里 编辑:程序博客网 时间:2024/05/20 15:59
第一步:meven添加依赖包,也可自行下载,注意jboss.logging与hibernate-validator的版本要能对应上:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.1.Final</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> </dependency> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> <version>3.1.0.CR2</version> </dependency>
第二步:在配置文件中添加校验的bean配置
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <!-- 配置校验器的提供类,这里使用的是Hibernate的校验 --> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> <!-- 指定校验使用的资源文件,如果不指定则默认使用classpath下的ValidationMessages.properties --> <property name="validationMessageSource" ref="messageSource" /> </bean> <!-- 校验错误信息配置文件 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!-- 资源文件名,这里property的name为basenames所以错误信息的配置文件CustomValidationMessages省去后缀 --> <property name="basenames"> <list> <value>classpath:CustomValidationMessages</value> </list> </property> <!-- 资源文件编码格式 --> <property name="fileEncodings" value="UTF-8" /> <property name="defaultEncoding" value="UTF-8"/> <!-- 对资源文件内容缓存时间,单位秒 --> <property name="cacheSeconds" value="120" /> </bean>
这里注意 <property name="defaultEncoding" value="UTF-8"/>
这行代码,不然输出的错误信息可能乱码
第三步:新建错误信息配置文件,如我这里是CustomValidationMessages.properties,配置文件如下:
#校验错误信息的配置文件marketing.jgdm.error=机构代码不能为空marketing.yyrq.error=预约日期不能为空
第四步:在Pojo类中配置校验规则,如下所示,更多校验如@NotNull、@Null、@Max等可自行网上查阅
@Size(min=1,message="{marketing.jgdm.error}") private String jgdm; //机构代码
第五步:Controller中使用该校验
@RequestMapping(value="/insertDepositMarketing.action",method={RequestMethod.POST,RequestMethod.GET}) public String insertDepositMarketing(@Validated DepositMarketing depositMarketing,BindingResult bindingResult ,Model model) throws Exception{ List<ObjectError> allErrors = bindingResult.getAllErrors(); if(bindingResult.hasErrors()){ for(ObjectError error : allErrors){ System.out.println(error.getDefaultMessage()); } model.addAttribute("allErrors",allErrors); return "fail"; } int yybh = depositMarketingService.insertDepositMarketing(depositMarketing); if(yybh > 0){ //插入成功 return "forward:queryDepositMarketing.action"; }else{ return "fail"; } }
使用@Validated对Po类进行校验,并用BindingResult接收校验
第六步:页面输出错误信息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'MyJsp.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <c:if test="${allErrors!= null}"> <c:forEach items="${allErrors}" var="item"> ${item.defaultMessage} </c:forEach> </c:if> <center> 操作居然失败了,真遗憾!</center><br> </body></html>
分组校验
第一步:新建一个校验分组接口,如下:
public interface MarketingValidationGroup {}
这个接口仅仅是标志校验分组
第二步:在Pojo类中给不同的校验规则划分分组,如下:
//将次校验划到校验分组:MarketingValidationGroup中去 @Size(min=1,message="{marketing.jgdm.error}",groups=MarketingValidationGroup.class)
第散步步:在Controller中使用校验分组,如下:
public String insertDepositMarketing(@Validated(value={MarketingValidationGroup.class}) DepositMarketing depositMarketing,BindingResult bindingResult ,Model model) throws Exception{ //代码省略}
阅读全文
0 0
- SpringMvc后台校验实现
- springMVC后台校验实现
- 基于JSR-303与springMVC 4的自定义后台校验
- Springmvc后台校验加文件上传(完整版)
- springmvc使用hibernate-validator校验框架实现后端校验
- springmvc利用validation框架实现数据校验
- springmvc校验
- springmvc校验
- springmvc 校验
- SpringMVC校验
- springmvc(四) springmvc的数据校验的实现
- springmvc 校验---spring校验
- dhtmlxtree 简单例子后台springmvc实现
- SpringMVC后台实现跨域支持
- 【SSH网上商城】拦截器实现后台权限校验
- SpringMVC和FreeMarker整合中使用注解方式的后台数据校验
- SpringMVC和FreeMarker整合中使用注解方式的后台数据校验validate(部分自己扩展)
- struts后台校验
- CSDN机器学习笔记七 实战样本不均衡数据解决方法
- 分页功能中的一页的信息(封装对象)
- Gradle build(高版本到低版本)遇到的错误总结
- BZOJ2555 SubString 后缀自动机+LCT
- Java发送邮件换行问题
- SpringMvc后台校验实现
- HTTPClient模块的HttpGet和HttpPost--雷锋
- Gradle学习——读懂Gradle语法
- VJ组队赛->Dancing Stars on Me(5533)
- 简述PRIMARY KEY与identity(1,1)的含义
- url地址获取判断
- 韩子笑讲课资料三:各类文开篇和大纲的写法。
- 关于探探图片滑动操作
- CRUD的共公代码