[help]全都配置好了,struts的validator验证框架还是不能用

06-03-22 Q088
该配置的都配置好了,

web-inf/validator-rules.xml

web-inf/validation.xml

web-inf/struts-config.xml

web-inf/web.xml

validator好像根本就没有执行验证,直接就到Action的execute方法访问数据库了,

我的配置代码如下

validation.xml文件

<p class="indent"><form-validation><p class="indent"><formset><p class="indent"><form name="bookform"><p class="indent">	<field property="name" depends="required,maxlength"><p class="indent">		<arg0 key="label.name"/><p class="indent">		<arg1 key="${var:maxlength}"/><p class="indent">		<var><p class="indent">		    <var-name>maxlength</var-name><p class="indent">	             <var-value>20</var-value><p class="indent">	         </var><p class="indent">	</field><p class="indent">	<field property="sex" depends="required"><p class="indent">		<arg0 key="label.sex"/><p class="indent">	</field>	<p class="indent">	<field property="email" depends="required"><p class="indent">		<arg0 key="label.email"/><p class="indent">	</field><p class="indent">	<field property="title" depends="required"><p class="indent">		<arg0 key="label.title"/><p class="indent">	</field>	<p class="indent">	<field property="content" depends="required"><p class="indent">		<arg0 key="label.content"/><p class="indent">	</field>			<p class="indent"></form><p class="indent"></formset><p class="indent"></form-validation>  <p class="i

Q088
2006-03-22 05:19
struts-config.xml文件

    <form-beans>
        <form-bean name="bookform" type="org.apache.struts.action.DynaActionForm" dynamic="true">
	    <form-property name="name" type="java.lang.String"/>
	    <form-property name="sex" type="java.lang.String"/>
	    <form-property name="email" type="java.lang.String"/>
	    <form-property name="title" type="java.lang.String"/>
	    <form-property name="content" type="java.lang.String"/>
        </form-bean>
    </form-beans>

    <global-forwards>
	<forward name="tomsg" path="/tomsg.jsp" />
    </global-forwards>

    <action-mappings>
	<action path="/msgbook"
             type="lin.liu.wei.msgbook.MsgBookAction"
	    name="bookform"	
	    scope="request"
	    validate="true"
	    input="/tomsg.jsp" />		
    </action-mappings>

    <message-resources parameter="lin.liu.wei.resource.Resource" />	

    <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="false"/>
    </plug-in>        

<p>

Q088
2006-03-22 05:24
其他文件我就不贴了

各位大哥,前辈

不是说,只有通过了验证框架才能到Action的execute方法吗

validate="true"我也设为true了

怎么我表单里什么都不写,它也能给我执行到execute这个方法,写入数据库

哪位老大有空来指点指点啊

我搞了一通宵还是搞不清楚哪出问题了

zhtJavaEngineer
2006-05-09 17:01
请确认一下你的Form是不是继承于ValidatorForm

并且把你Form里的validate方法删除掉

(因为验证方法是在基类中已经实现,一般不要覆盖)

要覆盖的话的要在validate方法中加入

super.validate(actionMapping,servletRequest);

freesky_nit
2006-08-06 15:12
你actionForm里面的validate()方法去掉没有,我就是没有去掉这个才会验证不成功的。

猜你喜欢