Unmi的Struts2学习笔记(五) - 编程入门网
Unmi的Struts2学习笔记(五)时间:2011-09-04 Unmi.cc 隔叶黄莺常有这样的梦:不知何来一本似乎是无字天书,而其中的字句却是慢慢地、渐 显可辨。同时现实中的自己完全能察觉这是一个梦,极怕即刻醒来,想多记取那 些天外之语。但总不能如愿,醒来时还留有某些字句痕迹,再过后就全然忘却。 仿佛进入的是一个太虚幻境。 1. 动态 Action:<action ../> 元素的一个前所未有的特性是,name 属性可以用通配符,class 和 method 属性中可以用 name 中的匹配参数,{0}/ {1} 的形式。举两个例子说明: ① <action name="*Action" class="com.unmi.LoginRegistAction" method="{1}"> URL 是 registAction.action 时,会执行 LoginRegistAction 类实例的 regist() 方法 ② <action name="*_*" class="actions.{1}Action" method="{2}"> URL 是 Book_save.action 时,会执行 actions.BookAction 类实例的 save () 方法 说明:{1},{2}是用来匹配 name 属性中的 *,这和正则表达式一样的,{0} 表示的完整的 name 属性值。这也是托 Struts2 的每请求产生新的 Action 的实 例才能这么用的,试想一下,Struts1 是没法针对通配符来预先加载好所有的 Action 实例的。 可由此定义一个能用的 Action,<result> 里也能用参数。 <action name="*"> <result>/ {1}.jsp</result> </action> 2. 关于在 <action .../> 中使用通配符时的校验文件命名规则。校验 文件的搜索规则是: ① <ActionClassName>-<ActionAliasName>-validation.xml <ActionAliasName> 为 name 属性值 ② <ActionClassName>-validation.xml 同时有这两个文件时,后面的规则能与前面的规则叠加或覆盖,例如 ① 中有 name域的校验,② 中有password域的校验,这两个文件同时存在 <ActionClassName>所在路径时,会同时校验name和password域。 例如对于 <action name="*Action" class="com.unmi.LoginRegistAction" method="{1}"> URL 是 registAction.action 时,会搜索校验文件 LoginRegistAction- registAction-validation.xml 和 LoginRegistAction-validation.xml。 Unmi的Struts2学习笔记(五)(2)时间:2011-09-04 Unmi.cc 隔叶黄莺3. 使用通配符就会涉及到 URL 与哪个 Action 匹配的问题。例如匹配有name 为 "*"、"*Action"、"LoginAction" 的 <action .../>,如果 URL 与某 个 Action 的 name 完全相同(如 LoginAction.action),否则按顺序来匹配, 而不是按匹配度来对应。如 abcAction.action 会匹配到 "*",而不是 "*Action"。 4. 可配置默认的 Action,URL 匹配不到对应的 Action 时就用它,用 <default-action-ref ../> 配置在 <package .../> 中。 5. Struts2 支持两种 <result ../>,配置在 <action .../> 中的局部 result,配置在 <global-results .../> 中的全局 result。 <result .../> 默认的 name 属性是 "success";默认的 type 属性是 "dispatcher",即使 JSP 类型。 6. <result .../> type="plaintext" 的 <result .../> 会显 示页面的源文件,如果其中有中文一般会产生乱码,这时候可设置它的 charSet 属性为 "GBK",用 <param .../> 标记。 7. <result .../> 的 dispatcher 和 redirect 类型的区别就是一个 是转发(带请求参数、属 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |