伊峰独居

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  30 随笔 :: 30 文章 :: 5 评论 :: 0 Trackbacks

主要是两个配置文件和资源文件的修改,然后就是在jsp中输出验证的结果

validator-rules.xml是验证注册类,用于定义验证逻辑,它的部分代码
<validator name="required"
<!—①-->
className="org.apache.struts.util.StrutsValidator"
method="validateRequired"
<!—② -->
methodParams="java.lang.Object,
org.apache.commons.validator.validatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
<!—③ -->
<javascript><![CDATA[
function validateRequired(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();


这个是required验证的部分代码。

validation.xml文件用于定义实际应用中的规则验证(哪些域需要验证,要验证哪些验证(比如required验证、minlength验证等等))

ApplicationResources文件主要是用于保存验证结果信息

我用的是eclipse+myeclipse
首先要在项目里面加入struts框架,这个不用说了吧,然后添加一个validation.xml文件

<form-validation>
 <formset>
  <form name="RegisterForm">
   <field property="userName" depends="required,minlength,maxlength">
    <arg0 key="label.username" />
    <arg1 name="minlength" key="3" resource="false" />
    <arg1 name="maxlength" key="17" resource="false" />
    <var>
       <var-name>minlength</var-name>
       <var-value>3</var-value>
    </var>
    <var>
       <var-name>maxlength</var-name>
       <var-value>17</var-value>
     </var>
   </field>
 </form>
 </formset>
</form-validation>

form name="RegisterForm指定验证名,也是actionform的名称,后面会用到。

field property="userName指定要验证的域,也就是actionform中的属性

depends="required,minlength,maxlength指定要通过哪些验证,这里有required,minlength,maxlength验证,他们依次进行验证,如果前面的验证没有通过,那么错误信息就保存到错误变量里面,不在进行下面的验证

arg0 key="label.username则是在资源ApplicationResources文件中定义的字段,验证结果中信息显示需要。
如errors.required={0} is required,arg0的值会代替{0},是第一个变量
arg1 name="minlength" key="3" resource="false" ,是第二个变量,但要注意的是 resource="false" ,表示它直接采用key属性所指定的值3去代替{1},而不使用ApplicationResources文件中定义的字段,下面有对minlength的定义
  <var>
       <var-name>minlength</var-name>
       <var-value>3</var-value>
    </var>

这些定义完之后,就是对资源文件的修改了,就是指定字段的替换

最后在jsp文件中运用验证,简单的一段代码:

<td width="219" height="30" align="right">
    <font size="2">
     <b>
      <bean:message key="label.username" />
      :
     </b>
    </font>
   </td>
   <td width="218" height="30">
    <html:text property="userName" maxlength="17" size="20" styleClass="smallInput" />
    <font color="red">
     *
    </font>
   </td>
   <td width="291" height="30">
    <font size="2" color="red">
     <b>
      <html:messages id="message" property="userName">
       <li>
        <bean:write name="message" />
       </li>
      </html:messages>
     </b>
    </font>
   </td>
  </tr>
红色部分就是进行验证后的信息显示,其中蓝色的部分名称要与validation.xml文件中的保持一致!!!

posted on 2006-09-24 22:43 伊峰 阅读(498) 评论(0)  编辑  收藏 所属分类: jsp学习

只有注册用户登录后才能发表评论。


网站导航: