Validate框架的问题

项目组要求,后台的check必须好用,所以必须写:ActionMessages errors = form.validate(mapping, request);
开始不好用的时候,自己偷懒,写成了new ,呵呵!!改成上面代码后立刻就报错了。。。错误代码如下:

[ssoMaster] DEBUG [http - 8080 - Processor24] SSOJ010.getActionMethod( 199 |  calling method: method.saveConfirm.y
[ssoMaster] ERROR [http
- 8080 - Processor24] ValidatorForm.validate( 114 |  org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest)
org.apache.commons.validator.ValidatorException: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest)
    at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:
627 )
    at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:
557 )
    at org.apache.commons.validator.Field.validateForRule(Field.java:
811 )
    at org.apache.commons.validator.Field.validate(Field.java:
890 )
    at org.apache.commons.validator.Form.validate(Form.java:
174 )
    at org.apache.commons.validator.Validator.validate(Validator.java:
367 )
    at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:
112 )
    at jp.co.benic.usp.sso.form.BaseForm.validate(BaseForm.java:
114 )
    at jp.co.benic.usp.sso.action.SSOJ010.saveConfirm(SSOJ010.java:
107 )
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39 )
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25 )
    at java.lang.reflect.Method.invoke(Method.java:
585 )
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:
276 )
    at jp.co.benic.usp.sso.action.BaseAction.execute(BaseAction.java:
256 )
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:
421 )
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
226 )
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:
1164 )
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:
415 )
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:
709 )
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:
802 )
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
252 )
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173 )
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:
375 )
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
202 )
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173 )
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:
264 )
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
107 )
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
72 )
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:
274 )
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:
110 )
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:
274 )
    at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:
81 )
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:
274 )
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:
217 )
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:
274 )
    at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:
108 )
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:
274 )
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:
191 )
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:
274 )
    at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:
148 )
    at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:
90 )
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
202 )
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173 )
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:
75 )
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:
77 )
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
202 )
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173 )
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213 )
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
178 )
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
126 )
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
105 )
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
107 )
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
148 )
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
856 )
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:
744 )
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
527 )
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
80 )
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:
684 )
    at java.lang.Thread.run(Thread.java:
595 )

项目组要求,后台的check必须好用,所以必须写:ActionMessages errors = form.validate(mapping, request);
开始不好用的时候,自己偷懒,写成了new ,呵呵!!改成上面代码后立刻就报错了。。。错误代码如下:

经过调查,确认是版本只见兼容性的问题:
struts1.2.4和common-validator1.1.3
struts1.2.9和common-validator1.3.0都不会有问题了!

另外注意:手写的validation.xml文件的头部代码如下:(这部分,不是关键,但不要出错)

<? xml version="1.0" encoding="UTF-8"  ?>
<! DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd" >

手写的validator-rules.xml文件的头部代码如下:

<! DOCTYPE form-validation PUBLIC
     "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
     "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"
>


手写的validator-rules-custom.xml文件的头部代码如下:

<! DOCTYPE form-validation PUBLIC
     "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.2.0//EN"
     "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"
>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值