请教大虾们关于ValidatorActionForm的验证问题
我觉得ValidatorActionForm好怪异啊,虽然它的原理很简单,但是实际一用就完全不是那么回事啊。
ValidatorActionForm主要目的是:对多个Action,公用这个Form但是在validation.xml里面是根据action的path来验证这个Form,也就是当请求提交给Action的时候,Action首先检查validate属性是否为true,如果为true,就查找其name对应的form,找到发现其为ValidatorActionForm,就用path去匹配validation.xml里面name为该action的path属性的form验证,并调用其验证规则;对于客户端jsp页面上的javascript代码生成也应该和这个差不多类似的吧?
我对ValidatorActionForm理解就这么多,应该是对的吧?
但是我在网上查了很多关于ValidatorActionForm的问题,发现都是提关于验证的问题,几乎没有几个人给出解决方案。回答的都是理论性的东西。
因此我想问问“大虾”们是否有人真正成功利用过这个东西,如果有,能否做一个简单的这种功能,并发上来看看?
在我的测试中,我有一个ValidatorActionForm:RegisterForm,本来我准备把这个form用于新建用户和查询用户,但是就是发现配置有问题,比如,我的新建用户的action配置为:
<action
path="/SysUser/newUser"
name="registerForm"
type="edu.scu.cs.register.controller.RegisterAction"
scope="request"
validate="true"
input="/index.jsp">
<forward name="success" path="/register/success.jsp"></forward>
<forward name="failure" path="/register/failure.jsp"></forward>
</action>
然后在validation.xml中的form配置为:
<form name="/SysUser/newUser">
...
</form>
在language="zh"的formset也有这个。
页面是:
<html:form action="/SysUser/newUser" method="post" onsubmit="return validateRegisterForm(this);">
。。。
</html:form>
<html:javascript formName="registerForm"/>
运行时,每次都要报错:
No form found under 'registerForm' in locale 'zh_CN'。
我只有配置validation.xml的name为registerForm时才正确。
因此忘大家给我分析一下原因,如果有样例能运行最好。
如果可以的话,还请给我发一份例子到邮箱:feng2008ao@sina.com
谢谢!!!:)