Unmi的Struts2学习笔记(五)

常有这样的梦:不知何来一本似乎是无字天书,而其中的字句却是慢慢地、渐 显可辨。同时现实中的自己完全能察觉这是一个梦,极怕即刻醒来,想多记取那 些天外之语。但总不能如愿,醒来时还留有某些字句痕迹,再过后就全然忘却。 仿佛进入的是一个太虚幻境。

1. 动态 Action: 元素的一个前所未有的特性是,name 属性可以用通配符,class 和 method 属性中可以用 name 中的匹配参数,{0}/ {1} 的形式。举两个例子说明:

URL 是 registAction.action 时,会执行 LoginRegistAction 类实例的 regist() 方法

URL 是 Book_save.action 时,会执行 actions.BookAction 类实例的 save () 方法

说明:{1},{2}是用来匹配 name 属性中的 *,这和正则表达式一样的,{0} 表示的完整的 name 属性值。这也是托 Struts2 的每请求产生新的 Action 的实 例才能这么用的,试想一下,Struts1 是没法针对通配符来预先加载好所有的 Action 实例的。

可由此定义一个能用的 Action, 里也能用参数。

<action name="*"><br />    <result>/{1}.jsp</result><br />  </action>

2. 关于在 中使用通配符时的校验文件命名规则。校验 文件的搜索规则是:

① –validation.xml         为 name 属性值

② -validation.xml

同时有这两个文件时,后面的规则能与前面的规则叠加或覆盖,例如 ① 中有 name域的校验,② 中有password域的校验,这两个文件同时存在 所在路径时,会同时校验name和password域。

例如对于

URL 是 registAction.action 时,会搜索校验文件 LoginRegistAction- registAction-validation.xml 和 LoginRegistAction-validation.xml。

3. 使用通配符就会涉及到 URL 与哪个 Action 匹配的问题。例如匹配有name 为 “*”、”*Action”、”LoginAction” 的 ,如果 URL 与某 个 Action 的 name 完全相同(如 LoginAction.action),否则按顺序来匹配, 而不是按匹配度来对应。如 abcAction.action 会匹配到 “*”,而不是 “*Action”。

4. 可配置默认的 Action,URL 匹配不到对应的 Action 时就用它,用 配置在 中。

5. Struts2 支持两种 ,配置在 中的局部 result,配置在 中的全局 result。 默认的 name 属性是 “success”;默认的 type 属性是 “dispatcher”,即使 JSP 类型。

6. type=”plaintext” 的 会显 示页面的源文件,如果其中有中文一般会产生乱码,这时候可设置它的 charSet 属性为 “GBK”,用 标记。

7. 的 dispatcher 和 redirect 类型的区别就是一个 是转发(带请求参数、属性、址址栏不变)和重定向(丢失请求参数、属性、重新产 生请求,所以地址栏会变)。

8. redirect-action 类型是重定(不是转发)向到一个 Action 上,那么要为 指定两个参数 actionName 和 namespace。简写为 actionName。这 种类型相当于在 Struts1 中的  /anotherAction.do 写法。当然在 Struts2 中也可以用 redirect 类型写成相同的形式。

9. 动态结果资源有两种,根据 的 name 属性的模式匹 配后的参数和请求参数决定结果。

① <action name="crud_*" class="com.unmi.CrudAction" method="{1}"><br />      <result>/{1}.jsp</result><br />     </action><br />   URL 为 crud_delete.action 处理成功后会转到 delete.jsp 页。<br />  ② <action name="..." class="com.unmi.ShowAction"><br />      <result>/show${user.type}</result><br />    </action><br />

要在 ShowAction 的设置了属性 ${user.type}。例如 ${user.type} 设 置为 “admin”,就会转到 showadmin.jsp 页。

10. Struts2 的 、意义与 效果完全对应于 Struts1 的 、 。

没有什么可留恋,只有抑制不住的梦想,没有什么可凭仗,

Unmi的Struts2学习笔记(五)

相关文章:

你感兴趣的文章:

标签云: