﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-orsen成长录-随笔分类-Strust</title><link>http://www.blogjava.net/orsen/category/41817.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Oct 2009 11:19:30 GMT</lastBuildDate><pubDate>Fri, 02 Oct 2009 11:19:30 GMT</pubDate><ttl>60</ttl><item><title>四步搞定Struts验证框架</title><link>http://www.blogjava.net/orsen/archive/2009/09/29/296939.html</link><dc:creator>Orsen</dc:creator><author>Orsen</author><pubDate>Tue, 29 Sep 2009 12:19:00 GMT</pubDate><guid>http://www.blogjava.net/orsen/archive/2009/09/29/296939.html</guid><wfw:comment>http://www.blogjava.net/orsen/comments/296939.html</wfw:comment><comments>http://www.blogjava.net/orsen/archive/2009/09/29/296939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orsen/comments/commentRss/296939.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orsen/services/trackbacks/296939.html</trackback:ping><description><![CDATA[一：form要继承validate以上的form类这样才可以，但是前台验证可以重写父类的validate方法<br />
后台验证必须继承ValidatorForm或ValidatorActionForm，测试发现：如果只做前台验证的话，不论用那个都可以。<br />
二：在struts-config.xml加入，加载Struts的动态验证模块。<br />
&lt;plug-in className="org.apache.struts.validator.ValidatorPlugIn"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set-property property="pathnames" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; value="/org/apache/struts/validator/validator-rules.xml,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; /WEB-INF/validation.xml"/&gt;<br />
&lt;/plug-in&gt;<br />
三：在增加validation.xml文件，配置需要验证的Form表单。<br />
&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
&lt;!DOCTYPE form-validation PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp; "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp; "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"&gt;<br />
&lt;form-validation&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;formset&gt;<br />
&nbsp;&nbsp;&lt;form name="userInfoForm" &gt;<br />
&nbsp;&nbsp;&nbsp;&lt;field property="username" depends="required"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;// resource="false"说明不用Struts的资源文件，输出消息自己写<br />
&nbsp;&nbsp;&nbsp;&nbsp;//有多个Struts资源文件 bundle="这里是自愿文件的key值"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;msg name="required" key="用户名必填" resource="false"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/field&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;field property="password" depends="required"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;msg name="required" key="errors.required"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;//给资源文件赋值研究<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;arg key="errors.required" position="0" name="password"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/field&gt;<br />
&nbsp;&nbsp;&lt;/form&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/formset&gt;<br />
&lt;/form-validation&gt;<br />
四：网页端，在网页中应用。<br />
注意：form一定要用html:form包装，负责不能通过自动验证<br />
&lt;!--使用生成生成脚本验证该表单--&gt;<br />
&lt;html:form action="userinfo.do?method=login"&nbsp; method="post"&nbsp; onsubmit="return validateUserInfoForm(this)"&gt;<br />
&nbsp;用户名称：&lt;input type="text" name="username"&gt;&lt;br&gt;<br />
&nbsp;拥护密码：&lt;input type="password" name="password"&gt;&lt;br&gt;<br />
&nbsp;&lt;input type="submit" value="登陆"&gt;&lt;br&gt;<br />
&lt;/html:form&gt;<br />
&lt;!--动态生成验证脚本--&gt;<br />
&lt;html:javascript formName="userInfoForm"/&gt; 
<img src ="http://www.blogjava.net/orsen/aggbug/296939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orsen/" target="_blank">Orsen</a> 2009-09-29 20:19 <a href="http://www.blogjava.net/orsen/archive/2009/09/29/296939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>