CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

100分征回答,解决问题全给!关于struts1.2之后表单提交验证的问题,请指教!!

楼主HellBoy09()2005-06-04 12:36:31 在 Java / J2EE / EJB / JMS 提问

 
        struts1.1表单的提交验证用的是actionForm   中的validator方法  
   
        但是struts1.2之后的版本好像不需要在actionForm中再写这个方法了  
   
        只需要在struts-config.xml和validation.xml中配置验证的条件好像就可以了  
   
        我是看的struts1.2.7中的validator中的例子,但是没有看明白其中的流程  
   
        就差一步!!  
   
        请大虾出来解释一下!  
   
        小弟不胜感激!!  
  问题点数:100、回复次数:9Top

1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-06-04 12:59:05 得分 20

楼主还没有理解  
  struts1.2之后并没有摈弃actionForm   中的validate方法,我们照样可以使用  
  你说的validation.xml和validate-rules.xml是validate框架,它的验证原理是生成js代码,其实还是客户端验证。  
  而ActionForm里面的validate方法是服务器端验证。  
  他们不矛盾的,我们一般结合起来使用他们。Top

2 楼HellBoy09()回复于 2005-06-04 14:13:32 得分 0

我现在看得是struts1.2.7   中的那个validator的第一个例子  
  链接是http://127.0.0.1/struts-examples/validator/registration.do  
   
  我看了他的源码,发现LoginActionForm里面并没有使用validator方法  
  并且也没有使用js客户端验证,因为在registration.jsp下没有使用<html:javascript   。。。  
  这个标记,并且验证后的效果是在网页显示,并不是弹出对话框,所以必然是服务器端验证  
  问题就是他没有写validator方法如何进行的验证,难道只是配置了struts-config.xml和validation.xml,但是我这样试了,行不通,总是不经过验证直接就跳转至欢迎页面!  
   
    这就是我心中的疑惑,他如何生效的??  
  请指教!!谢谢!  
  Top

3 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-06-04 14:28:47 得分 20

确实只要在validation.xml里面配置一下对具体的Form的验证规则就可以了  
  然后页面里面加上这个  
  <html:form   action="/login"   method="post"   focus="loginname"   onsubmit="return   validateLoginForm(this);">  
   
  这个是我自己写的,LoginForm是在struts-config.xml里面配置的FormBean的名字  
  Top

4 楼HellBoy09()回复于 2005-06-04 14:49:29 得分 0

还是通过不了,下面是我的代码,请看一下!  
   
  login.jsp  
   
  <%@   page   contentType="text/html;   charset=GBK"   %>  
  <%@   taglib   uri="/WEB-INF/struts-bean.tld"   prefix="bean"   %>  
  <%@   taglib   uri="/WEB-INF/struts-html.tld"   prefix="html"   %>  
  <%@   taglib   uri="/WEB-INF/struts-logic.tld"   prefix="logic"   %>  
  <html:html>  
  <head>  
  <title>mvc   test</title>  
  </head>  
   
  <body>  
  <html:errors/>  
  <html:form   action="/login"   method="post"   focus="userName"   onsubmit="return     validateloginActionForm(this);">  
  <table   width="43%"   border=1   align="center"   cellpadding="0"   cellspacing="0">  
  <tr>  
  <th   width="49%"   align="right">userName:</th>  
  <td   width="51%"   align="left">  
  <html:text   property="userName"   size="20"   maxlength="20"/>  
  </td>  
  </tr>  
  <tr>  
  <th   align="right">password:</th>  
  <td   align="left">  
  <html:password   property="password"   size="20"   maxlength="20"/>  
  </td>  
  </tr>  
  <tr>  
  <td   align="right">  
  <html:submit/>  
  </td>  
  </tr>  
  </table>  
  </html:form>  
  </body>  
  </html:html>  
   
  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>  
      <form-beans>  
          <form-bean   name="loginActionForm"   type="struts.LoginActionForm"   />  
      </form-beans>  
      <action-mappings>  
          <action   input="input"   name="loginActionForm"   path="/login"   scope="session"   type="struts.LoginAction"   validate="true">  
          <forward   name="input"   path="/login.jsp"   />  
          <forward   name="success"   path="/hello.jsp">  
        </forward>  
          </action>  
      </action-mappings>  
      <message-resources   parameter="ApplicationResources"   />  
      <plug-in   className="org.apache.struts.validator.ValidatorPlugIn">  
          <set-property   property="pathnames"   value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"   />  
      <set-property   property="stopOnFirstError"   value="true"/>  
      </plug-in>  
  </struts-config>  
   
  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">  
  <form-validation>  
  <formset>  
  <form   name="loginAtionForm">  
              <field   property="userName"   depends="required">  
                  <arg0   key="app.userName"/>  
              </field>  
              <field   property="password"   depends="required">  
                  <arg0   key="app.password"/>  
              </field>  
              </form>  
      </formset>  
  </form-validation>  
   
   
  LoginActionForm.java  
   
  package   struts;  
   
  import   org.apache.struts.validator.ValidatorForm;  
  import   org.apache.struts.action.ActionMapping;  
  import   javax.servlet.http.HttpServletRequest;  
  import   org.apache.struts.action.ActionErrors;  
  import   org.apache.struts.action.ActionMessage;  
   
  public   class   LoginActionForm  
          extends   ValidatorForm   {  
      private   String   password;  
      private   String   userName;  
      public   String   getPassword()   {  
          return   password;  
      }  
   
      public   void   setPassword(String   password)   {  
          this.password   =   password;  
      }  
   
      public   void   setUserName(String   userName)   {  
          this.userName   =   userName;  
      }  
   
      public   String   getUserName()   {  
          return   userName;  
      }  
   
  }  
   
   
  LoginAction.java  
   
  package   struts;  
   
  import   org.apache.struts.action.ActionMapping;  
  import   org.apache.struts.action.ActionForm;  
  import   javax.servlet.http.HttpServletRequest;  
  import   javax.servlet.http.HttpServletResponse;  
  import   org.apache.struts.action.ActionForward;  
  import   org.apache.struts.action.ActionMessages;  
  import   org.apache.struts.action.Action;  
  import   javax.servlet.http.HttpSession;  
   
  public   class   LoginAction  
          extends   Action   {  
      public   ActionForward   execute(ActionMapping   actionMapping,  
                                                                ActionForm   actionForm,  
                                                                HttpServletRequest   request,  
                                                                HttpServletResponse   servletResponse)   {  
        LoginActionForm   loginActionForm   =   (LoginActionForm)   actionForm;  
          loginActionForm.setUserName("loginName");  
          loginActionForm.setPassword("password");  
          return   actionMapping.findForward("success");  
      }  
  }  
  请指教,多谢!!!Top

5 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-06-04 15:05:28 得分 60

loginActionForm  
   
  <formset>  
  <form   name="loginAtionForm">  
              <field   property="userName"   depends="required">  
  不知道是不是你的代码贴错了,上面的form名字要统一  
   
  其他我也没看出问题:(  
   
  当然我的页面里面加了  
  <html:javascript   formName="LoginForm"   />Top

6 楼HellBoy09()回复于 2005-06-04 15:28:01 得分 0

什么地方不一致呀!!??Top

7 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-06-04 15:47:16 得分 0

<form   name="loginAtionForm">  
                          ~~~~~~~~Top

8 楼HellBoy09()回复于 2005-06-04 16:18:20 得分 0

不过还是没有搞明白struts1.2.7里面那个例子是怎么回事!  
  唉!  
   
  Top

9 楼HellBoy09()回复于 2005-06-04 16:20:20 得分 0

我在struts-config.xml和validation.xml  
  写的都是loginActionForm    
   
  jsp页面里面也是loginActionForm  
   
  哪里还不一致呀?!!  
  Top

相关问题

  • struts表单验证
  • 表单提交验证:
  • struts 表单验证问题
  • Struts表单验证问题!
  • Struts表单的javascript验证问题
  • Struts表单提交出现乱码?
  • 用图片代替按钮提交表单之前如何验证表单.
  • 怎样在提交表单之前验证数据?
  • 改进一个表单提交前的的验证代码?
  • 一个关于javascript验证提交的表单的问题

关键词

  • 问题

得分解答快速导航

  • 帖主:HellBoy09
  • jFresH_MaN
  • jFresH_MaN
  • jFresH_MaN

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo