4.2springmvc校验

1.hibernate的校验框架validation所需要jar包:

2 在applicationContext.xml中配置校验器:

<!-- 校验器 -->
    <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">
            <list>
            <value>classpath:CustomValidationMessages</value>
            </list>
        </property>
        <!-- 资源文件编码格式 -->
        <property name="fileEncodings" value="utf-8" />
        <!-- 对资源文件内容缓存时间,单位秒 -->
        <property name="cacheSeconds" value="120" />
    </bean>

3 校验器注入到处理器适配器中

<mvc:annotation-driven conversion-service="conversionService"
validator="validator"></mvc:annotation-driven>

4 在pojo中添加校验规则

@Size(min=1,max=30,message="{items.name.length.error}")
private String name;

5 CustomValidationMessages.properties

items.name.length.error=姓名长度必须在1到30之间

6 在Controller中显示错误信息

//在需要校验的pojo前边添加@Validated,在需要校验的pojo后边添加BindingResult bindingResult接收校验出错信息

//注意:@Validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后)。

7在jsp页面显示错误信息

if (bindingResult.hasErrors()) {
            // 输出错误信息
            List<ObjectError> allErrors = bindingResult.getAllErrors();

            for (ObjectError objectError : allErrors) {
                // 输出错误信息
                System.out.println(objectError.getDefaultMessage());

            }
            // 将错误信息传到页面
            model.addAttribute("allErrors", allErrors);

            // 出错重新到商品修改页面
            return "items/editItems";
        }

jsp页面

<!-- 显示错误信息 -->
<c:if test="${allErrors!=null }">
    <c:forEach items="${allErrors }" var="error">
    ${ error.defaultMessage}<br/>
</c:forEach>
</c:if>
时间: 2024-10-29 19:11:43

4.2springmvc校验的相关文章

Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇) 本文主要内容: (1)SpringMVC校验 (2)数据回显 (3)异常处理器 (4)图片上传 (5)Json数据交互 (6)支持RESTful 1.SpringMVC校验 1.1校验理解 项目中,通常使用较多的是前端的校验,比如页面中js校验.对于安全要求较高的

微信接口校验

1.Servlet package com.itmayiedu.servlet; import java.io.IOException;import java.io.PrintWriter;import java.util.Date;import java.util.Map; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Http

C# Excel 批量上传校验组件

很多开发场景中,都会涉及excel批量导入功能,而导入excel都需要校验数据有效性,字符长度过长,数据类型不匹配,正则校验,连接数据库查询用户名是否合法,等等不一而足:校验之后,还需要对校验不合法的单元格标红..... 你还在为这些烦恼吗? 现在可以不必了,本组件对常用校验做成配置,把正确的数据和错误的数据奉送到你面前,你只需要轻轻东东手配配xml,校验即可完成: 本组件可以学到:面向对象,nopi,缓存依赖....... 本组件已上线运行! 另附组件化培训内部资料!!!! 全是干货!!!!

自己写的基于java Annotation(注解)的数据校验框架

JavaEE6中提供了基于java Annotation(注解)的Bean校验框架,Hibernate也有类似的基于Annotation的数据校验功能,我在工作中,产品也经常需要使 用数据校验,为了方便和重用,自己写了一个简单的基于Annotation的校验框架.有兴趣的可以扩展. 框架说明: AnnotationValidable接口:所有需要使用该校验框架的类都要实现它,该类中没有任何方法需要实现,仅仅是一个表明那些类需要使用该校验框架的标识. GetFiledValue类:是一个工具类,对

数据校验validator 与 DWZ

在做系统时经常会用到数据校验,数据校验可以自己写,也可以用现在成的,现在记录下两种类库使用方法, validator <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="pragma" content="n

表单校验之datatype

凡要验证格式的元素均需绑定datatype属性,datatype可选值内置有10类,用来指定不同的验证格式. 如果还不能满足您的验证需求,可以传入自定义datatype,自定义datatype是一个非常强大的功能,通过它可以满足你的任何需求. 可以绑定的附加属性有:datatype.nullmsg.sucmsg.errormsg.ignore.recheck.tip.altercss.ajaxurl 和 plugin等.   说明: 内置基本的datatype类型有: * | *6-16 | n

Android APP之WebView如何校验SSL证书

Android系统的碎片化很严重,并且手机日期不正确.手机根证书异常.com.google.android.webview BUG等各种原因,都会导致WebViewClient无法访问HTTPS站点.SSL错误的处理方式十分关键,如果处理不当,可能导致中间人攻击,黑客窃听数据,进而引发安全事故. 严谨地处理onReceivedSslError尤为重要.请参考以下代码,原理是:如果webview报告SSL错误,程序将会对服务器证书进行强校验,如果服务器传入证书的指纹(sha256)与记录值一致,说

盈创动力之 JS校验方法

var IS_NULL = 128; // 10000000var IS_FULL = 64; // 01000000var IS_HALF = 32; // 00100000var IS_ASCII = 16; // 00010000var IS_NUM = 8; // 00001000var IS_DATE = 4; // 00000100var IS_PHONE = 2; // 00000010var IS_EMAIL = 1; // 00000001var IS_NOT_NULL = 0

Struts2输入校验

regist.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <% String path = request.getContextPath(); String basePath = reques