Struts的Validator问题,比较复杂求达人解答!
我的程序里面用到了动态验证表单DynaValidatorActionForm
在struts-config.xml的配置如下:
code=XML]<form-bean name="customerForm"  
   		type="org.apache.struts.validator.DynaValidatorActionForm">
   		<form-property name="customer" type="org.test.struts.entity.Customer"/>
   		<form-property name="operate" type="java.lang.String"/>
   	</form-bean>
[/code]
其中org.test.struts.entity.Customer这个类里有属性name,address,email
在validation.xml的配置如下
XML code
<formset>
    <form name="customerForm">
      <field property="customer.name" depends="required">
        <arg key="page.customer.index.name.label" position="0"/>                      
      </field>
    </form>
  </formset>
之所以在field元素的property属性用"customer.name"
是因为我在JSP页面里面用的是
<td>
	<label>
	        <bean:message key="page.customer.index.name.label"/>
	</label>
	<html:text property="customer.name" size="8" maxlength="4"/>
</td>
运行程序,为customer赋值都没有任何问题,数据也可以正常入数据库,证明上面用的customer.name没有任何问题。
但是如果我在文本框内不输入任何数据,提交后还是保存到了数据库,那个required校验器没有器到任何作用。
请问象在这种时候(用的customer.name,一个javabean做传输属性名)要如何才可以让required校验器起到作用。
另:我自己修改了一下,改成name也不行,改成customer也不行。到底在validation.xml要如何做?
谢谢!!!!!!!!!!!!!!
------解决方案--------------------
原因:
type="org.apache.struts.validator.DynaValidatorActionForm
改成type="org.apache.struts.validator.DynaValidatorForm
因为你在你的validate.xml中配置的是
<form name="customerForm">
     <field property="customer.name" depends="required">
       <arg key="page.customer.index.name.label" position="0"/>                     
     </field>
   </form>
<form name="customerForm">name中是你的form的名字
所以要用DynaValidatorForm