随笔-39  评论-33  文章-0  trackbacks-0
 

Struts的静态数据验证方法

胡立新

利用Struts的静态数据验证方法可以对用户在表单上输入的数据进行验证,包括数据类型是否正确、是否可空等。方法如下:

    1、在struts-config.xml文件中加入

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

         </plug-in>

       其中parameter="ApplicationResources"意味着在java源代码根部,src/下有一属性文件ApplicationResources.properties,但为了能显示中文件信息

       src/下还应有文件ApplicationResources_zh_CN.properties 两文件最后打包到WEB-INF/classes下。

    2、利用开发工具在WEB-INF/下导入validator-rules.xmlvalidation.xml文件。这是有关验证规则及验证内容的配置文件。

    3、为表单属性加入中文说明,如有个formBean,名为form1,有三个属性,nameheightborn,分别是姓名、身高、出身日期

       ApplicationResources.properties文件中加入属性的解释说明:

           errors.integer={0} 必须为整型值,请注意编辑框内不能有空白字符串

           errors.date={0} 日期格式错误,应为 2004-03-23 2004-03-23 00:00:00.0 (00:00:00.0 为时::.毫秒)

           # form1

           form1.name.displayname=姓名

           form1.height.displayname=身高

           form1.born.displayname=出身日期

       第一、二行不是必须的,但有意义。

       打包前执行下列批处理 native2ascii ApplicationResources.properties ApplicationResources_zh_CN.properties,目的是由文件ApplicationResources.properties

       产生新文件ApplicationResources_zh_CN.properties,以便能正确显示汉字,这个新文件也在src/下。

    4、为了验证用户在填写表单时输入的数据,在validation.xml文件的<formset></formset>之间加入如下内容

          <form    name="form1">

             <field    property="name"

                     depends="required">

                       <arg0 key="form1.name.displayname"/>

             </field>

             <field    property="height"

                     depends="integer">

                       <arg0 key="form1.height.displayname"/>

             </field>

             <field    property="born"

                     depends="required,date">

                       <arg0 key="form1.born.displayname"/>

                         <var>

                           <var-name>datePatternStrict</var-name>

                           <var-value>yyyy-MM-dd</var-value>

                         </var>

             </field>

          </form>

    5、在jsp页面上,在</body>前加入strus标签:

          <html:javascript formName="form1" dynamicJavascript="true" staticJavascript="true"/>

    经过以上准备,不管是用struts<html:form></html:form>标签还是用newxy<nhtml:form></nhtml:form>标签,在客户端用户提交数据前都可以进行验证。

    但如果用struts<html:form></html:form>标签,应加入onsubmit事件,如:

          <html:form action="/myAction.do?method=update" onsubmit="return validateForm1(this);">

            ....

            <html:submit value=" 提交 " />

          </html:form>

          

posted on 2007-04-12 13:42 newxy新坐标 阅读(1122) 评论(0)  编辑  收藏

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


网站导航: