锁定老帖子 主题:webwork的客户端验证不起作用?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-03-05
<ww:form name="'loginform'" action="'login.action'" method="'POST'" validate="true"> <TABLE align="center" style="border:solid #669999 2px"> <tr bgcolor="#99CC99"><td align="center" colspan="2">Logon first:</td></tr> <TR> <TD><ww:textfield label="'name'" name="'model.username'" value="lyoform.username"/> </TD> </TR> <TR> <TD><ww:textfield label="'password'" name="'form.userpassword'" value="lyoform.userpassword"/> </TD> </TR> <tr align="center"><td colspan="2"><input type="submit"/></td></tr> </TABLE> </ww:form> </body> 我得xwork.xml很简单: <xwork> <include file="webwork-default.xml"/> <package name="default" extends="webwork-default"> <interceptors> <interceptor-stack name="validationWorkflowStack"> <interceptor-ref name="defaultStack"/> <interceptor-ref name="validation"/> <interceptor-ref name="workflow"/> </interceptor-stack> <interceptor-stack name="modelParamsStack"> <interceptor-ref name="params" /> <interceptor-ref name="model-driven" /> <interceptor-ref name="validationWorkflowStack" /> </interceptor-stack> </interceptors> <action name="login" class="lyo.test.LogonAction"> <result name="success" type="dispatcher"> <param name="location">/main.jsp</param> </result> <result name="error" type="dispatcher"> <param name="location">/error.jsp</param> <param name="input">/login.jsp</param> </result> <interceptor-ref name="modelParamsStack" /> <interceptor-ref name="validationWorkflowStack" /> </action> </package> 但是点击提交的时候,浏览器跳转到空白页面,后台提示: 2005-3-5 19:01:35 com.opensymphony.xwork.DefaultActionInvocation executeResult 警告: No result defined for action lyo.test.LogonAction and result input 但是在xwork.xml中明明有result的定义! 好像这种struts,webwork框架的客户端验证都是这样,按照正确配置都莫名其妙的不起作用,webwork自带的验证例子连运行都运行不了!他的例子一点击提交,就报js错误,form.0 不是对象!有验证起作用的么? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-03-05
加上code]<result name="input" type="dispatcher">login.jsp</result> 后,可以验证了,但是报 js错误!
image: |
|
返回顶楼 | |
发表时间:2005-03-06
这是不是webwork的bug? 我在jsr上也看到这个问题,是2.1.6,我用的是 2.1.7. 还有就是:
1.必须为每个Action都写自己的 ActionClass-validation.xml么?不能像struts那样几个form公用一个定制的validation么? 2.webwork页面上命名规则都是单引号的形式,能不能改称通常习惯的不加单引号的方式? |
|
返回顶楼 | |
发表时间:2005-03-07
2.1.7开始用的是XmlHttpRequest,但是还不成熟,在firefox下面可以用, 在IE下面不行.
你要么换2.1.6,要么从jira上找一下, 偶记得有一个相关的patch的. |
|
返回顶楼 | |
发表时间:2005-03-07
lyo 写道 1.必须为每个Action都写自己的 ActionClass-validation.xml么?不能像struts那样几个form公用一个定制的validation么? 可以利用继承关系, 比如BarAction-validation.xml , 能够被BarAction和FooAction extends BarAction重用. lyo 写道 2.webwork页面上命名规则都是单引号的形式,能不能改称通常习惯的不加单引号的方式? 这个是万恶的jsp tag照成的了, 如果你用的不是jsp, 比如velocity/freemarker之类的, 那么写一些macro, 就可以避免单引号,双引号这些混淆了. |
|
返回顶楼 | |
发表时间:2005-03-07
Readonly 写道 lyo 写道 1.必须为每个Action都写自己的 ActionClass-validation.xml么?不能像struts那样几个form公用一个定制的validation么? 可以利用继承关系, 比如BarAction-validation.xml , 能够被BarAction和FooAction extends BarAction重用. lyo 写道 2.webwork页面上命名规则都是单引号的形式,能不能改称通常习惯的不加单引号的方式? 这个是万恶的jsp tag照成的了, 如果你用的不是jsp, 比如velocity/freemarker之类的, 那么写一些macro, 就可以避免单引号,双引号这些混淆了. 多谢,我下载了 webwork2.1 final,但是仍然有bug,点击按钮后,js错误: "$parameters 未定义"!!! 我看了页面的js代码,确实没有翻译这个parameters: <form name="test" action="/lyowebwork/login.action" method="POST" onsubmit="return(test_validate(););" > <TABLE align="center" style="border:solid #669999 2px"> <tr bgcolor="#99CC99"><td align="center" colspan="2">Logon first:</td></tr> <TR> <TD> <tr> <td align="right" valign="top"> <span class="label"> name: </span> </td> <td> <input type="text" name="model.username" /> </td> </tr> </TD> </TR> <TR> <TD> <tr> <td align="right" valign="top"> <span class="label"> password: </span> </td> <td> <input type="text" name="model.userpassword" /> </td> </tr> </TD> </TR> <tr align="center"><td colspan="2"><tr> <td colspan="2"> <div align="center" ><input type="submit" value="sub" /></div> </td> </tr> </td></tr> </TABLE> <script> function test_validate(); { var form = document.forms['test']; var focus = test_validate_actual();; if (focus != null); { form.elements[focus].focus();; if (form.elements[focus].type == 'text' || form.elements[focus].type == 'textarea'); { form.elements[focus].select();; } return false; } else { return true; } } function test_validate_actual(); { var form = document.forms['test']; $parameters.javascriptValidation return null; } </script> </form> 我只在java.net上找到2.1final.但是 webwork2.1.6我还没有找到哪里下载,你能给个连接吗? |
|
返回顶楼 | |
发表时间:2005-03-07
Readonly 写道 2.1.7开始用的是XmlHttpRequest,但是还不成熟,在firefox下面可以用, 在IE下面不行.
你要么换2.1.6,要么从jira上找一下, 偶记得有一个相关的patch的. 我找到2.1.6了,再试试js验证功能! 不过你回答的第二个问题还不是很明白,就是说我必须用单引号,不能在哪个地方设置一下么 |
|
返回顶楼 | |
发表时间:2005-03-07
果然是版本问题,我现在用了2.1.6,可以了! 但是不知道2.1.6会不会比2.1.7少一些重要功能
|
|
返回顶楼 | |
发表时间:2005-03-08
lyo 写道 果然是版本问题,我现在用了2.1.6,可以了! 但是不知道2.1.6会不会比2.1.7少一些重要功能
不会查change log么? |
|
返回顶楼 | |
发表时间:2005-03-18
我也曾经遇到过2.1.7的客户端校验错误的问题。
后来发现,其实是2.1.7自带的template有问题。 只需要在你的web目录下面建立template目录。 把2.1.6的jar包中的simple,vxhtml,xhtml拷贝进去就可以了。 实际上就是换一下标签的模板。 不知道能不能解决你的问题。 |
|
返回顶楼 | |