快速业务通道

Unmi的Struts2学习笔记(十四) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
验。

<s:head theme="ajax"/> <s:form action="Login" method="post" theme="ajax" validate="true">   <s:textfield name="name" label="姓名"/>   <s:textfield name="pass" label="密码"/>   <s:submit label="登 陆"/> </s:form> <s:head theme="ajax"/> <s:form action="Login" method="post" theme="ajax" validate="true">   <s:textfield name="name" label="姓名"/>   <s:textfield name="pass" label="密 码"/>   <s:submit label="登陆"/> </s:form>

注:没有 <s:head theme="ajax"/> 也能完成校验,提示信息,但有 ''dojo 未定义'' 错误,且提示信息不会是红色的。<s:form.../> 一定要是 theme="ajax" validate="true",否则不能作 ajax 校验。

4) 校验规则文件,规则文件的命名与提交到后端校验是一样的,所以此时 ajax 会用 LoginAction-validation.xml 中定义的规则来校验输入。

4. 试过一下把 xwork-2.0.1.jar 换成了 xwork-2.0.4.jar,结果进行 Ajax 校验时,老报 java.lang.NoClassDefFoundError: Could not initialize class com.opensymphony.xwork2.validator.ValidatorFactory,原因还不明,但 ValidatorFactory 一直都的的确确是存在,以后用时先要注意到这一点,暂用 xwork-2.0.1.jar,有时间再去查明原因。

5. 表单的 Ajax 校验未通过之前,是不能提交的,点提交按钮没反应。但是 真正的表单提交后的后台校验也是必不可少的,因为 Ajax 校验并不一定可靠, 在页面上总有办法改变值后不触发 onblur 事件的,幸好,Ajax 校验和提交后的 检验本来用的就是同一个校验规则文件,Ajax 校验之后还会有一次更可靠的校验 。

6. 使用这种 Ajax 输入校验,一旦给 <s:form.../> 加上了 theme="ajax" validate="true" 属性后就会给每个输入组件加上 onblur 事件, 那要是某个输入组件不需要 ajax 校验,该如何做呢?连自己给组件加的 onblur 属性也覆盖不了 Struts2 生成的 onblur="validate(this);",处理办法有二:

1) 在校验规则文件中不加对该字段的配置,但中间的 XMLHttpRequest 请求 是少不了

2) 单独给输入组件指定 theme="xhtml",这样风格也可以保持一致,因为 ajax 主题扩展自 xhtml 主题的。

Unmi的Struts2学习笔记(十四)(3)

时间:2011-09-04 Unmi.cc 隔叶黄莺

7. 使用 Ajax 表单,如果给 <s:form.../> 指定了 theme="ajax",如 果点击了 <s:submit targets="show"/> 将会以 Ajax 方式提交数据,当 前页面不刷新,然后 Struts2 处理后的 result 页面的内容将会作为当前页中 ID 为 "show" 的 HTML 元素(如 <div id="show"></div>)的 innerHTML。targets 可以指定多个 ID,用逗号分隔,意味着同时更新多处。

8. 使用了 ajax 主题的 form 中,<s:submit executeScripts="true" targets="show"/>,点击这个按钮以 Ajax 提交表单,并以转向页的内容填充 ID 为 "show" 元素的 innerHTML,还能执行结果页中的 JavaScript(vbscript不 执行)。最后那个结果应该只输出需要数据,不用完整的 HTML 标签。碰到一个问 题是,在结果页里加了 <s:debug/> 点击提交按钮执行不到其中的 javasc

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号