论坛首页 Java企业应用论坛

spring2.5 mvc common-validator 集成应用

浏览 2054 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-10  

常常写客服端验证代码,写多了就感觉是否有啥东西可以简化处理的,这几天看了一下common-validator感觉不错,以前的项目开发的时候没有注意这个东西,感觉挺好的,同时可以进行两端验证。在网上找了好多文章发现都千篇一律的,自己弄了好久都没有弄好,今天终于有了大概的眉目,我把我自己实现bean验证通过配置文件来进行配置,springmvc中用注解 记录如下:

1首先要导入spring-modules-validation.jar,和common-validator包,spring-modules-validation.jar里面有三种验证系统,感觉如果能把这几个再分详细点就好了。

因为我现在先实现这种功能,bean验证通过配置文件来进行配置,springmvc中我用的是注解,网上找到的是bean也是使用的注解完成的。

2在mvc配置文件中加入配置

<!-- 表单验证管理 -->
<!--    <bean id="beanValidator"
        class="org.springmodules.validation.commons.DefaultBeanValidator">
        <property name="validatorFactory" ref="validatorFactory" />
    </bean> 这个是bean验证的方式,下面是通过配置的验证器-->
    <bean id="confValidator"
        class="org.springmodules.validation.commons.ConfigurableBeanValidator">
        <property name="validatorFactory" ref="validatorFactory" />
    </bean>
    <bean id="validatorFactory"
        class="org.springmodules.validation.commons.DefaultValidatorFactory">
        <property name="validationConfigLocations">
            <list>
                <value>WEB-INF/validator-rules.xml</value>
                <value>WEB-INF/validation.xml</value>
            </list>
        </property>
    </bean>
3在controller中加入

@Controller
public class ServiceModelController{
    @Autowired
    private GgwsfwbService ggwsfwbService;
    @Autowired
    ConfigurableBeanValidator confValidator;
......在保存数据前验证

    @RequestMapping("/savemodel")
    public String saveServiceModel(@ModelAttribute("PhServiceModelForm")PhServiceModel obj,
            BindingResult bindingResult,
            HttpSession session,
            ModelMap model){
       
        confValidator.setFormName("PhServiceModelForm");
        confValidator.validate(obj, bindingResult);

 

。。。。。。

 

这里增加个控制将公用验证函数输出到单独的文件,如果不这样处理而单独访问这个jsp页面,将会发生错误,有兴趣的可以试试


    @RequestMapping("/validator")
    public String printJavaScript(){
        return "validator";
    }
这个validator.jsp页面内容如下

<%@ page language="java" pageEncoding="utf-8" contentType="javascript/x-javascript; charset=utf-8;"%>
<%@ taglib uri="http://www.springmodules.org/tags/commons-validator" prefix="validator" %>
<validator:javascript dynamicJavascript="false" staticJavascript="true"/>
3jsp页面调用产生的js,我系统默认访问后缀为htm

<script type="text/javascript" src="<c:url value="/validator.htm"></c:url>">

<validator:javascript formName="PhServiceModelForm" dynamicJavascript="true" staticJavascript="true"  xhtml="true" cdata="false"/>
在from的onsubmit函数

<form id="form1" name="form1" method="post" action="<c:url value="/savemodel.htm"></c:url>" onsubmit="return validatePhServiceModelForm(this);">

<s:bind path="PhServiceModelForm.START_DATE">
     <input type="text" name="START_DATE" id="START_DATE" value="${status.value}"/>${status.errorMessage}
     </s:bind>

 

以上过程就是我实现spring, common-validator的验证过程,我将validator的配置文件上传上来,不过这个配置文件还有些问题,仅供参考,

 

如果谁有更好的解决办法欢迎指教

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics