`
yahaitt
  • 浏览: 760785 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

struts1.2表单validator验证中,如何解决多处验证问题?

阅读更多

现有用户注册、用户登陆、密码修改、用户信息修改等几个功能,需要的也就一个user表。

但是在页面中提供的是不同的输入项目。用validator验证时,看下面的validation.xml文件里的一段:

xml 代码
  1. <form name="userForm">  
  2.             <field property="loginname" depends="required">  
  3.                 <arg key="user.loginname" resource="true" />  
  4.             field>  
  5.             <field property="password" depends="required,minlength">  
  6.                 <arg key="user.password" resource="true" />  
  7.                 <arg name="minlength" key="${var:minlength}" resource="false" />  
  8.                 <var>  
  9.                     <var-name>minlengthvar-name>  
  10.                     <var-value>8var-value>  
  11.                 var>  
  12.             field>  
  13.             <field property="mail" depends="required,email">  
  14.                 <arg key="user.mail" resource="true" />  
  15.             field>  
  16.             <field property="name" depends="required">  
  17.                 <arg key="user.name" resource="true" />  
  18.             field>  
  19.         form>  

这是在用户注册时需要验证的4个字段

请看用户注册的JSP页面代码:

xml 代码
  1. <div class="g_main">  
  2.     <div class="concenter">  
  3.     <div class="u_regist_all">  
  4.         <div><img src="${css}/images/form_title.gif" />div>  
  5.         <div class="u_regist_middle">  
  6.             <html:form action="/userm.do" focus="loginname" styleClass="u_regist_form" onsubmit="return validateUserForm(this)">  
  7.                 <input type="hidden" name="method" value="regist"/>  
  8.                 <input type="hidden" name="pagefrom" value="${ pagefrom }"/>  
  9.                 <label>用户名:label>  
  10.                     <html:text property="loginname" styleClass="text"/><em>*em><br />  
  11.                     <logic:messagesPresent property="loginname">  
  12.                         <label>label>  
  13.                         <div class="u_err">  
  14.                             <html:errors property="loginname" >html:errors><br />  
  15.                         div>  
  16.                     logic:messagesPresent>  
  17.                        
  18.                 <label>真实姓名:label>  
  19.                     <html:text property="name" styleClass="text"/><em>*em><br />  
  20.                     <logic:messagesPresent property="name">  
  21.                         <label>label>  
  22.                         <div class="u_err">  
  23.                             <html:errors property="name">html:errors><br />  
  24.                         div>  
  25.                     logic:messagesPresent>  
  26.                 <label>性别:label>  
  27.                     <input type="radio" name="sex" value="1" class="u_radio" />男   
  28.                     <input type="radio" name="sex" value="0" class="u_radio" checked="checked" /><br />  
  29.                 <label>电子邮件:label>  
  30.                     <html:text property="mail" styleClass="text"/><em>*em><br />  
  31.                     <logic:messagesPresent property="mail">  
  32.                         <label>label>  
  33.                         <div class="u_err">  
  34.                             <html:errors property="mail">html:errors><br />  
  35.                         div>  
  36.                     logic:messagesPresent>  
  37.                 <label>密码:label>  
  38.                     <html:password property="password" styleClass="text"/><em>*不能少于8个字符em><br />  
  39.                     <logic:messagesPresent property="password">  
  40.                         <label>label>  
  41.                         <div class="u_err">  
  42.                             <html:errors property="password">html:errors><br />  
  43.                         div>  
  44.                     logic:messagesPresent>  
  45.                 <label>请再次输入密码:label>  
  46.                     <input type="password" name="repassword" class="text" onblur="checkrepass();"/><em>*em><br />  
  47.                     <label id="labelrepassword" style="display:none">label>  
  48.                     <div class="u_err" id="divrepassword" style="display:none;">  
  49.                            
  50.                     div>  
  51.                 <label>固定电话:label>  
  52.                     <html:text property="tel" styleClass="text"/><br />  
  53.                 <label>移动电话:label>  
  54.                     <html:text property="mobile" styleClass="text"/><br />  
  55.                 <label>邮政编码:label>  
  56.                     <html:text property="zip" styleClass="text"/><br />  
  57.                 <label>详细地址:label>  
  58.                     <html:text property="addr" styleClass="u_address"/><br />  
  59.             html:form>  
  60.             <html:javascript formName="userForm" staticJavascript="false" dynamicJavascript="true" cdata="false"/>  
  61.             <script type="text/javascript" src="${ctx}/scripts/validator.jsp">script>  
  62.         div>  
  63.         <div class="u_regist_bottom"><img type="image" src="${css}/images/m_button_02.gif" onclick="if(validateUserForm(document.userForm)) document.userForm.submit();"/>div>  
  64.     <!---->  
  65.     div>  
  66.     <!---->  
  67.     div>  
  68. <!---->  
  69. div>  
  70.   
  71. <script language="javascript">  
  72. function checkrepass()   
  73. {   
  74.     var flag = true;   
  75.     var errmsg = "";   
  76.     if(document.userForm.password.value == "" || document.userForm.repassword.value == "")   
  77.     {   
  78.         flag = false;   
  79.         errmsg = "请输入密码和确认密码";   
  80.     }   
  81.     else if(document.userForm.password.value.length <8 || document.userForm.repassword.length <8)   
  82.     {   
  83.         flag = false;   
  84.         errmsg = "密码和确认密码字符不能少于8个";   
  85.     }   
  86.     else if(document.userForm.password.value != document.userForm.repassword.value)   
  87.     {   
  88.         flag = false;   
  89.         errmsg = "两次密码输入不一致";   
  90.     }   
  91.        
  92.     if(flag == false)   
  93.     {   
  94.         document.getElementById("labelrepassword").style.display = '';   
  95.         document.getElementById("divrepassword").style.display = '';   
  96.         document.getElementById("divrepassword").innerHTML = errmsg;   
  97.     }   
  98.     else   
  99.     {   
  100.         document.getElementById("labelrepassword").style.display = 'none';   
  101.         document.getElementById("divrepassword").style.display = 'none';   
  102.         document.getElementById("divrepassword").innerHTML = "";   
  103.     }   
  104.        
  105.     return flag;   
  106. }   
  107. script>  

 

当在注册页面注册时验证确实起作用了

但是在其它页面就会出现JS脚本出错信息

 原因是其它页面中并不会包含validation.xml中提到的所有的4个字段的信息,比如用户密码修改页面就不会列出用户其它信息,

但JS却还是会去找这4个字段对应的表单元素,所有JS就执行通 不过了。

想问一下,像这样的情况该如何解决?有没有更好的办法来使用这个struts的validator框架?

分享到:
评论

相关推荐

    Struts1.2动态表单验证

    总的来说,Struts1.2动态表单验证是一个强大的工具,它简化了Web应用中用户输入验证的流程,使开发者能更专注于业务逻辑。通过合理利用验证配置文件,可以轻松调整验证规则,适应不同的应用场景。同时,这种分离式的...

    Struts1.2动态表单注册 验证实例(2)

    总的来说,这个实例涵盖了Struts1.2中的基础应用,包括Action、表单Bean、配置文件、验证框架和JSP页面的使用。通过学习和实践这个例子,开发者可以深入理解Struts的工作原理,以及如何利用它来构建功能丰富的Web...

    struts1.2 jar包

    在`struts1.2-jars`这个压缩包中,包含了Struts1.2运行所需的各个jar文件,比如`struts-core.jar`包含了框架的核心组件,`struts-tiles.jar`包含Tiles视图管理组件,`struts-taglib.jar`提供了与JSP相关的标签库,...

    Struts 1.2 API详细讲解.rar

    9. **Validator**:Struts 1.2包含了一个验证框架,用于在客户端和服务器端验证用户输入的数据,确保其合法性和完整性。 10. **Tiles和Struts标签库**:Struts提供了丰富的JSP标签库,如logic、bean、html、tiles等...

    Struts1.2

    11. **Plug-in机制**:Struts1.2支持插件,可以方便地扩展功能,如Validator插件用于验证表单数据。 12. **ModelDriven接口**:一种简化Action类设计的模式,允许Action类只关注业务逻辑,模型对象的获取和设置交由...

    struts1.3实现的Validator简单验证

    1. 验证器分离:在Struts1.2中,验证逻辑通常与ActionForm类混在一起,而在Struts1.3中,验证逻辑被迁移到了单独的配置文件,使得代码更易于维护。 2. 动态验证:Struts1.3的DynaValidator允许动态验证,这是1.2所不...

    struts1.2-jars.rar 所有jar包

    5. `commons-validator.jar`:Apache Commons Validator,提供表单验证功能,可以自定义验证规则。 6. `xalan.jar`、`xercesImpl.jar`、`xml-apis.jar`:XML解析相关的库,用于处理XML文档。 三、Struts1.2工作原理...

    Struts1.2中的validation验证框架的实现步骤

    ### Struts1.2中的Validation验证框架实现步骤详解 #### 一、环境配置与准备工作 在Struts1.2框架中实现验证功能首先需要完成环境配置。这包括添加必要的库文件(JAR包)、配置XML文件等。 ##### 1.1 添加...

    struts1.2验证框架示例

    本示例通过具体的代码和配置展示了如何在Struts 1.2中实现表单数据验证。它不仅涵盖了错误消息的定义、验证规则的配置,还包括了具体验证逻辑的实现。这对于初学者来说是非常有用的实践指导,有助于理解和掌握Struts...

    Struts1.2_api

    通过这个API,开发者可以更高效地解决Struts1.2框架中的问题,例如错误调试、功能实现、性能优化等。 总之,Struts1.2 API是开发和维护基于Struts1.2的应用程序时不可或缺的参考资源。通过深入学习和理解API中的...

    Struts 1.2 API详细讲解

    Struts 1.2的Validator框架提供了一种验证用户输入的方法。通过定义验证规则,你可以确保输入的数据符合业务需求。 九、国际化与本地化 Struts 1.2支持多语言环境,通过资源包(Resource Bundle)可以实现不同地区...

    struts1.2的各项功能小demo

    8. **Validator**:内置的验证框架,用于在ActionForm中验证用户输入的数据,确保数据的有效性。 9. **Model-View-Controller(MVC)模式**:Struts1.2遵循MVC设计模式,Action是Controller,JSP是View,而...

    Struts1.2动态FormBean加验证功能的一个例子

    在这个例子中,我们将深入探讨如何在Struts1.2中实现动态FormBean并添加验证功能。 首先,让我们理解什么是动态FormBean。在传统的Struts1应用中,每个ActionForm Bean都是一个Java类,它对应于HTML表单的字段,并...

    struts 1.2源代码

    8. **Validation**:Struts 1.2提供了内置的验证机制,通过定义ValidatorForm和struts-validator.xml文件,可以在服务器端对用户输入进行验证。 9. **Plug-in架构**:Struts 1.2的插件机制允许开发者添加自定义功能...

    Struts1.2+Ibatis+JQuery案例

    - **验证和异常处理**:可能包括Struts1.2的Validator框架使用,以及如何捕获和处理服务端的异常信息,通过Ajax返回给前端。 此案例对于学习和理解这三种技术的协同工作非常有帮助,特别是对于初学者,可以清晰地...

    struts1.2配置介绍

    Struts1.2提供了一个Validator框架,用于验证用户输入的数据。在`struts-config.xml`中,我们需配置Validator的插件,并在`validation.xml`文件中定义验证规则。通过Validator,开发者可以自定义验证规则,确保输入...

    Struts 1.2源码

    - 使用Validator插件,Struts可以对用户输入进行验证,确保数据的有效性和完整性。 9. **异常处理** - Struts 1.2提供了自定义的异常处理机制,允许开发者定义全局或特定Action的错误处理策略。 10. **生命周期...

    struts 1.2 lib.zip

    commons-collections.jar, commons-digester.jar, commons-validator.jar**:这些是Apache Commons项目提供的实用工具类库,为Struts提供额外的功能支持,如对象的bean操作、集合操作、XML解析和表单验证等。...

    validator-rules.xml,validation.xml

    `validator-rules.xml`和`validation.xml`是Struts 1.2中用于实现数据验证的关键配置文件。 `validator-rules.xml`是Struts 1.2的全局验证规则文件,它定义了一组通用的验证规则,这些规则可以被多个ActionForm对象...

Global site tag (gtag.js) - Google Analytics