[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文件

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

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 class="indent">

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()方法去掉没有,我就是没有去掉这个才会验证不成功的。