struts2注解使用

上传人:第*** 文档编号:31078125 上传时间:2018-02-04 格式:DOCX 页数:15 大小:31.67KB
返回 下载 相关 举报
struts2注解使用_第1页
第1页 / 共15页
struts2注解使用_第2页
第2页 / 共15页
struts2注解使用_第3页
第3页 / 共15页
struts2注解使用_第4页
第4页 / 共15页
struts2注解使用_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《struts2注解使用》由会员分享,可在线阅读,更多相关《struts2注解使用(15页珍藏版)》请在金锄头文库上搜索。

1、struts2 注解使用从 struts2.1 开始,struts2 不再推荐使用 Codebehind 作为零配置插件,而是改为使用 Convention 插件来支持零配置, 和 Codebehind 相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用 struts.xml 文件进行配置,甚至不需要 使用 Annotation 进行配置,而是由 struts2 根据约定自动配置。如何使用 Convention1. 将 struts-Convention-plugin-2.1.6.jar 文件复制到 WEB-INF/lib路径下2. 对于 Convention 插件

2、而言,它会自动搜索位于action,actions,struts,struts2 包下的所有 java 类,Convention 插件会把如下两种 java 类当成 Action 处理:1) 所有实现了 com.opensymphony.xwork2.Action 的 java 类2) 所有类名以 Action 结尾的 java 类3. Convention 插件还允许设置如下三个常量:1) struts.Convention.exclude.packges:指定不扫描哪些包下的 java 类,位于这些包结构下的 java 类将不会自动映射成 Action;2) struts.conventi

3、on.package.locators:Convention 插件使用该常量指定的包作为搜寻 Action 的根包。对于 actions.fore.LoginAction 类,按约定原本应映射到/fore/login;如果将该常量设为 fore,则该 Action 将会映射 到/login3) struts.convention.action.packages:Convention 插件以该常量指定包作为根包来搜索 Action 类。 Convention 插件除了扫描action,actions,struts,struts2 四个包的类以外,还会扫描该常量指定的一个或多个 包,Convent

4、ion 会试图从中发现 Action 类。注意:struts.convention.package.locators 和struts.convention.action.packages 两个常量的作用比较微妙,开发者在利用这两个常量时务必小心。如:下面 Action 所在包被映射的命名空间如下:com.fun.actions.LoginAction 映射到 /com.fun.actions.myoffice.CarInfoAction 映射到 /myofficecom.fun.struts.myoffice.EntINfoAction 映射到 /myofiice4. 映射 Action 的

5、name 时,遵循如下两步规则:1) 如果该 Action 类名包含 Action 后缀,将该 Action 类名的 Action 后缀去掉。否则不做任何处理。2) 将 Action 类名的驼峰写法(每个单词首字母大写、其他字母小写的写法)转成中画线写法(所有字母小写,单词与单词之间以中画线隔开)如:LoginAction 映射的 Acion 的 name 属性为 login,GetBooks 映射的 Action的 name 的属性为 get-books,AddEmployeeAction 映射的 Action 的 name 属性为 add-employee5. 默认情况下。Conventi

6、on 总会到 WEB 应用的 WEB-INF/content 路径下定位物理资源,定位资源的约定是:actionRUL+resultCODE+suffix。当某个逻辑视图找不到对应的试图资源时,Convention 会自动视图使用ActionURL+suffix 作为物理视图资源。如:actions.fore.LoginAction 返回 success 字符串时,Convention优先考虑使用 WEB-INF/content/fore 目录下的 login-success.jsp 作 为视图资源。如果找不到该文件,login.jsp 也可作为对应的试图资源。如果返回input 字符串,Co

7、nvention 会将 WEB- INF/content/fore 里面查找 login-input.jsp6. 为了看到 struts2 应用里的 Action 等各种资源的影射情况,struts2提供了 Config Browser 插件。使用方法,将 struts2-config-browser-plugin-2.1.6.jar 文件复制到 struts2 应用的 WEB-INFlib 目录中。打开首页地址:http:/localhost:8080/应用名字/config-browser/actionNames.action 这里可以看到 Config Browser 插件的首页。注意:

8、这里不管开发者是否使用 struts.xml 文件进行配置,一样可以看到struts 的配置信息。7.Action 链的约定如果希望一个 Action 处理结束后不是进入一个试图页面,而是进行另一个Action 形成的 Action 链。通过 Convention 插件则只需遵守如下三个约定即可。1) 第一个 Action 返回的逻辑视图字符串没有对应的视图资源2) 第二个 Action 与第一个 Action 处在同一个包下3) 第二个 Action 影射的 URL 为:firstActionURL+resultCODE如,第一个 Action 为 OneAction,里面有个方法返回为“t

9、wo”,那么就得保证,WEB-INF/content/下没有 one.jsp 或 one-two.jsp 对于第二个 action 它的名字应该是 OneTwoAction,而对应的 url 应该是:“one-two.action”注意:由于 Convention 插件根据 Action 和 jsp 页面来动态生成映射的,因此不管是 Acion 的改变,还是 JSP 页面的改变都需要 Convention 插件重新加载映射。那么只要我们为 struts2 应用配置如下两个常量就可以了。几个重要的常量struts.convention.action.disableJarScanning-是否从包

10、中搜索 Actionstruts.convention.action.package-Convention 插件以该常量指定包作为根包struts.convention.result.path -设置 Convention 插件定位视图资源的根路径。默认值为/WEB-INF/contentstruts.convention.result.flatLayout如果是为 false 则可以将试图放置Action 对应的目录下,无需放入 WEB-INF/content8. Convention 的 Annotation1) 与 Action 相关的两个 Annotation 是Action 和Act

11、ions2) Action 中可指定一个 value 属性。类似于指定属性值3) Action 中还可以指定一个 params 属性,该属性是一个字符串数组,用于该 Acion 指定的参数名和参数值。params 属性应遵守如下格式:“name1”,”value1”,”name2”,”value2”4) Actions 也用于修饰 Action 类里的方法,用于将该方法映射到多个URL.Actions 用于组织多个Action.因此它可将一个方法映射成多个逻辑Action。如:package com.fun.actions;import org.apache.struts2.conventio

12、n.annotation.Action;import org.apache.struts2.convention.annotation.Actions;import com.fun.service.LoginService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport private String str;Actions(Action(value=login1,params=str,这是已经注入的了!),Action(value=login2)public

13、String login()return str;Action(value=ggg)public String abc() return abc;public String getStr() return str;public void setStr(String str) this.str = str;我们可以通过/login1.action 访问,而在访问时,str 这个属性已经有值,为str=”这是已经注入的!” 返回的视图是 login1-str.jsp当我们用/login2.action 访问时,str 的值为 null。返回的视图为 login2-str.jsp而我们通过/ggg.

14、action 调用的是 abc()方法,返回的视图为/ggg-abc.jsp9. 与 Result 配置相关的 Annotation1)ResultPath Result 和 Results2)Results 用于组织多个Result 因此它只需指定一个 value 属性值,该value 属性值为多个Result3)Result 相当于 struts.xml 文件中的元素的做哟欧诺个。使用Result 必须指定一个 name 属性,相当于另外,它还有几个可选的属性。 type 相当于指定返回视图资源的类型 location 相当于.中间部分,用于指定实际视图位置 params:该属性相当于元素

15、里多个子元素的作用,用于为该 Result 指定参数值。该属性应满足“name1”,”value1”,”name2”,”value2”格式4)Result 有以下两种用法1 Action 级的 Result 映射:以Actions 组合多个Action 后修饰的 Action 类。这种 Result 映射对该 Action 里的所有方法都有效。2 方法级 Result 映射:将多个Result 组成数组后作为Action 的 results 属性值。这种 Result 映射仅对被修饰的方法有效。5)ResultPath 则用于修饰包和 Action 类,用于改变被修饰 Action 所对应的物

16、理视图资源的根路径。举例说:默认情况 下,Convention 都会到 WEB-INF/content 路径下找物理视图资源,一旦我们使用ResultPath(“/abc”)修饰该 Action,系统将回到 abc 目录下寻找物理视图资源。举例:在默认情况下,Convention 都会到 WEB-INF/content 路径下需找物理 视图资源,一旦我们使用ResultPath(“/abc”)修饰该 Action,系统会到 abc 目录下寻找物理视图资源。10. 与包和命名空间相关的 Annotation:Namespace:修饰 Action 类或其所在的包。该 Annotation 中指定一个value 属性值,用于指定被修饰的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号