A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

通过validator框架验证成功了,输入非法的数据拦截成功,显示错误提示信息了,但是同时后台控制台那里会显示错误信息是否正常,如日期输入不规则的,前台显示错误信息,后台控制台也会出来异常信息   这种情况是否是属于正常情况呢?

这是表单:







line 1:22: unexpected token: )
        at org.apache.struts.validator.validwhen.ValidWhenParser.join(ValidWhenParser.java:444)
        at org.apache.struts.validator.validwhen.ValidWhenParser.joinedExpression(ValidWhenParser.java:412)
        at org.apache.struts.validator.validwhen.ValidWhenParser.expr(ValidWhenParser.java:385)
        at org.apache.struts.validator.validwhen.ValidWhenParser.expression(ValidWhenParser.java:371)
        at org.apache.struts.validator.validwhen.ValidWhen.validateValidWhen(ValidWhen.java:112)
        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:597)
        at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:567)
        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:110)
        at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:919)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:430)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
2011-12-13 20:29:45 org.apache.commons.validator.GenericTypeValidator formatDate
警告: ddd
java.text.ParseException: Unparseable date: "ddd"
        at java.text.DateFormat.parse(DateFormat.java:337)
        at org.apache.commons.validator.GenericTypeValidator.formatDate(GenericTypeValidator.java:213)
        at org.apache.struts.validator.FieldChecks.validateDate(FieldChecks.java:519)
        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:597)
        at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:567)
        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:110)
        at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:919)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:430)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

9 个回复

倒序浏览
这种情况是否正常呢?郁闷着
回复 使用道具 举报
不正常,你可以不用验证框架,用验证函数,比较简单
回复 使用道具 举报
肯定有问题,楼主不妨把代码贴出来。。。
回复 使用道具 举报
本帖最后由 lucky_xingxing 于 2011-12-14 11:29 编辑
李振元 发表于 2011-12-13 22:44
肯定有问题,楼主不妨把代码贴出来。。。


Formbean:
public class RegUserForm extends ValidatorForm {
        /*
         * Generated fields
         */

        /**
         *
         */
        private static final long serialVersionUID = 1L;

        /** name property */
        private String name;

        /** password property */
        private String password;

        private String password2;
       
        private String birthday;
       
        private String email;
        /*
         * Generated Methods
         */
/**
         * Returns the name.
         * @return String
         */
        public String getName() {
                return name;
        }

        /**
         * Set the name.
         * @param name The name to set
         */
        public void setName(String name) {
                this.name = name;
        }

        /**
         * Returns the password.
         * @return String
         */
        public String getPassword() {
                return password;
        }

        /**
         * Set the password.
         * @param password The password to set
         */
        public void setPassword(String password) {
                this.password = password;
        }

        public String getBirthday() {
                return birthday;
        }

        public void setBirthday(String birthday) {
                this.birthday = birthday;
        }

        public String getEmail() {
                return email;
        }

        public void setEmail(String email) {
                this.email = email;
        }

        public String getPassword2() {
                return password2;
        }

        public void setPassword2(String password2) {
                this.password2 = password2;
        }
}
validation.xml配置文件
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!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">



<form-validation>


    <!-- ========== Default Language Form Definitions ===================== -->
    <formset>

        <form name="regUserForm">

            <field property="name"
                    depends="required">
                <arg   key="prompt.username"/>
            </field>

            <field property="password"
                    depends="required, minlength,maxlength">
                <arg   key="prompt.password"/>
                <arg   key="${var:minlength}" name="minlength"
                   resource="false"/>
                <arg   key="${var:maxlength}" name="maxlength"
                   resource="false"/>
                <var>
                    <var-name>maxlength</var-name>
                    <var-value>6</var-value>
                </var>
                <var>
                    <var-name>minlength</var-name>
                    <var-value>3</var-value>
                </var>
            </field>
            
             <field property="password2"
                    depends="required,validwhen">
                  
                      <arg key="prompt.password2"/>
                        <msg name="validwhen" key="errors.password2"/>
                                          <var>
                                            <var-name>test</var-name>
                                            <var-value>(*this* == password)</var-value>
                                          </var>
               </field>
            
             <field property="email"
                    depends="required">
                <arg   key="prompt.email"/>
            </field>
                        <field property="email"
                    depends="email">
                <arg   key="prompt.email"/>
            </field>
            
            <field property="birthday"
                    depends="required">
                <arg   key="prompt.birthday"/>
            </field>
                        <field property="birthday"
                    depends="date">
                <arg   key="prompt.date"/>
                 <var>
                         <var-name>datePatternStrict</var-name>
                         <var-value>yyyy-MM-dd</var-value>
                 </var>
               
            </field>
        </form>
</formset>
</form-validation>
struts-config.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="regUserForm" type="com.lovo.validator.form.RegUserForm" />
   
     </form-beans>
  <action-mappings >
    <action
      attribute="regUserForm"
      input="/WEB-INF/page/regUser.jsp"
      name="regUserForm"
      parameter="xxx"
      path="/regUser"
      scope="request"
      type="com.lovo.validator.action.RegUserAction">
      <forward name="false" path="/regUserUI.do" />
      <forward name="succes" path="/WEB-INF/page/main.jsp" />
    </action>
    <action path="/regUserUI" type="com.lovo.validator.action.RegUserUIAction">
      <forward name="regUI"   path="/WEB-INF/page/regUser.jsp" />  
    </action>
      </action-mappings>
  <message-resources parameter="com.lovo.resources.ApplicationResources" />

  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,
    /WEB-INF/validation.xml"/>
</plug-in>
       
</struts-config>


jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<html>
        <head>
                <title>JSP for RegUserForm form</title>
        </head>
        <body>
                <html:form action="/regUser">
                        name : <html:text property="name"/><html:errors property="name" prefix="" suffix="" header="" footer=""  /><br/>
                        password : <html:password property="password"/><html:errors property="password" prefix="" suffix="" header="" footer=""/><br/>
                        password2 : <html:password property="password2"/><html:errors property="password2" prefix="" suffix="" header="" footer=""/><br/>
                        email:<html:text property="email"/><html:errors property="email" prefix="" suffix="" header="" footer=""  /><br/>
                        birthday : <html:text property="birthday"/><html:errors property="birthday" prefix="" suffix="" header="" footer=""  /><br/>
                        <html:submit/><html:cancel/>
                </html:form>
        </body>
</html>

回复 使用道具 举报
不好意思!好像楼主没有贴出action的代码,不过,由于具体的文件映射,我也不好帮助楼主解决这个问题了。。。不好意思!
回复 使用道具 举报
李振元 发表于 2011-12-14 12:26
不好意思!好像楼主没有贴出action的代码,不过,由于具体的文件映射,我也不好帮助楼主解决这个问题了。。 ...

能告诉下你的邮箱吗?我源码发你。求解决
回复 使用道具 举报
马伟奇 黑马帝 2011-12-14 13:16:02
8#
弄不出来就算了吧,因为现在企业不会在用的struts1了
回复 使用道具 举报
马伟奇 发表于 2011-12-14 13:16
弄不出来就算了吧,因为现在企业不会在用的struts1了

额,全部都struts2了?我是刚学习struts  所以想先学了struts1了再学习struts2
回复 使用道具 举报
马伟奇 黑马帝 2011-12-14 13:57:18
10#
没有必要啊2跟1关系不大,就算学完了1,你对2还是不了解,直接学2就好了,我在企业做,没有哪个企业用1,除非是老系统
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马