当前位置: 代码迷 >> J2EE >> Struts的Validator有关问题,比较复杂求达人解答
  详细解决方案

Struts的Validator有关问题,比较复杂求达人解答

热度:181   发布时间:2016-04-22 03:34:33.0
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
  相关解决方案