ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:30KB ,
资源ID:1039129      下载积分:50 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1039129.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Struts2零配置实现.docx)为本站会员(心***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

Struts2零配置实现.docx

1、Struts2 的零配置实现Struts 2 里面开始使用 convention-plugin 实现零配置,将所有的配置文件删除,用约定大于配置的方法来实现 URL 的跳转。 Struts 规定了一套默认的约定,只要遵守这些约定,就可以实现无需配置文件的 URL 跳转。Struts2 里的 convention-plugin 插件使用,需要引入 convention-plugin 的 jar 包。Struts2 的约定: Convention 怎样寻找 Action。首先,Convention 会搜索所有的 Action 类,搜索方法是从 package 的根目录开始搜索,搜索所有含有 Str

2、uts, Struts2,Action,actions 的 packages,然后开始搜索这些包及其子包下面所有的实现了 com.opensymphony.xwork2.Action 的类和名字中含有 Action 结尾的类,每一个找到的类都会被映射到一个 URL。上面是 Convention 的默认约定,可以通过配置文件来改变这些约定。在 struts.xml 中通过配置 struts.convention.exclude.packages 来告诉 Convention 忽略扫描某些包,通过配置 struts.convention.package.locators 配置搜索包的关键词,通过配

3、置 struts.convention.action.packages 配置只搜索哪个包下的类。例如: Convention 怎样将 Action 映射成 URLConvention 会将找到的 Action 映射成 URL,映射的 URL 名以 Action 类的名为基础,如 UserAction 类将会被映射成 user。URL 的路径将根据类的包名来转换,如下面的类:Com.boco.actions.UserAction 类的 URL 地址为 /Com.boco.actions.demo.UserAction 的 URL 将会为 /demo/Com.boco.actions.demo.d

4、etails.UserAction 的 URL 将会为 /demo/details/具体资源的名字将根据 Action 类名来进行转化,首先取出 Action,其次根据驼峰命名法的类名将大写子母小写,并用“-”进行分割。如:UserAction 将会被映射为 userUserDetailsAction 将会被映射为 user-details上面是 Convention 的默认约定,可以通过配置文件来改变这些约定。资源文件将会被出去 Action,用”-” 来分割,可以通过 struts.convention.action.name.separator来改变分隔符,配置如下:URL 的路径也就是

5、命名空间不能在配置文件中修改,但是可以在类中通过 annotation 进行自定义,加上namespace(“你的路径”)可以自定义命名空间。Convention 的映射很灵活化,和模板的映射也支持好几种文件,如下表。URL Result File that could match Result Type/hello success /WEB-INF/content/hello.jsp Dispatcher/hello success /WEB-INF/content/hello-success.htm Dispatcher/hello success /WEB-INF/content/hel

6、lo.ftl FreeMarker/hello-world input /WEB-INF/content/hello-world-input.vm Velocity/test1/test2/hello error /WEB-INF/content/test/test2/hello-error.html Dispatcher通过上面的列表可知 URL 对应的模板默认存放在 /WEB-INF/content/ 下面,当然这个content 文件夹又可以通过配置文件进行自定义。通过可以指定模板文件的位置。 除此以外,Convention 的 URL 映射还非常的灵活化,可以在 Class 中的通过A

7、nnotation 进行最大程度的自定义化。网上摘抄一些简单的配置说明:通过Action 注释 对如下例子:Java 代码 1. package com.example.web; 2. 3. import com.opensymphony.xwork2.Action; 4. import com.opensymphony.xwork2.ActionSupport; 5. 6. public class HelloAction extends ActionSupport 7. Action(“action1“) 8. public String method1() 9. return SUCCE

8、SS; 10. 11. 12. Action(“/user/action2“) 13. public String method2() 14. return SUCCESS; 15. 16. 方法名 默认调用路径 默认映射路径method1 /hello!method1.action . /WEB-INF/content/hello.jspmethod2 /hello!method2.action. /WEB-INF/content/hello.jsp通过Action 注释后方法名 Action 注释后调用路径 Action 注释 后映射路径method1 /action1!method1.a

9、ction. /WEB-INF/content/action1.jspmethod1 /user/action2!method2.action /WEB-INF/content/user/action2.jsp通过Actions 注释Java 代码 1. package com.example.web; 2. 3. import com.opensymphony.xwork2.ActionSupport; 4. import org.apache.struts2.convention.annotation.Action; 5. import org.apache.struts2.convent

10、ion.annotation.Actions; 6. 7. public class HelloAction extends ActionSupport 8. Actions( 9. Action(“/different/url“), 10. Action(“/another/url“) 11. ) 12. public String method1() 13. return “error”; 14. 我们可以通过:/different/url!method1.action 或 /another/url!method1.action来调用 method1 方法。对应的映射路径分别是/WEB-I

11、NF/content/different/url-error.jsp; /WEB-INF/content/another/url-error.jsp 可能误导了大家,一个方法被Action 注释后,只是多了一种调用方式,而不是说覆盖了原来的调用方式。比如对于如下例子:Java 代码 1. package com.example.web; 2. 3. import com.opensymphony.xwork2.ActionSupport; 4. import org.apache.struts2.convention.annotation.Action; 5. import org.apach

12、e.struts2.convention.annotation.Actions; 6. 7. public class HelloAction extends ActionSupport 8. Action(“/another/url“) 9. public String method1() 10. return “error”; 11. 我们调用 method1 方法可以通过两种方式:1 /hello!method1.action 映射 url:/WEB-INF/content/hello-error.jsp 2 /another/url!method1.action 映射 url:/WEB

13、-INF/content/another/url-error.jsp 可见,两种方式均可对 method1 方法进行调用,唯一的区别就是,两种调用的映射是不一样的,所以,想跳转到不同的界面,这是一个非常好的选择。通过Namespace 注释Java 代码 1. package com.example.web; 2. 3. import com.opensymphony.xwork2.ActionSupport; 4. import org.apache.struts2.convention.annotation.Action; 5. import org.apache.struts2.conv

14、ention.annotation.Actions; 6. Namespace(“/other“) 7. public class HelloWorld extends ActionSupport 8. 9. public String method1() 10. return “error”; 11. 12. Action(“url“) 13. public String method2() 14. return “error”; 15. 16. 17. Action(“/different/url“) 18. public String method3() 19. return “erro

15、r”; 20. 21. 通过 /other/hello-world!method1.action 访问 method1 方法。通过 /other/url!method2.action 访问 method2 方法通过 /different /url!method3.action 访问 method3 方法 与Action 注释不同的是,该注释覆盖了默认的 namespace(这里是/),此时再用hello!method1.action 已经不能访问 method1 了.Results 和Result 1 全局的(global)。 全局 results 可以被 action 类中所有的 actio

16、n 分享,这种 results 在 action 类上使用注解进行声明。Java 代码 1. package com.example.actions; 2. 3. import com.opensymphony.xwork2.ActionSupport; 4. import org.apache.struts2.convention.annotation.Action; 5. import org.apache.struts2.convention.annotation.Actions; 6. import org.apache.struts2.convention.annotation.Re

17、sult; 7. import org.apache.struts2.convention.annotation.Results; 8. 9. Results( 10. Result(name=“failure“, location=“/WEB-INF/fail.jsp“) 11. ) 12. public class HelloWorld extends ActionSupport 13. public String method1() 14. return “failure”; 15. 16. Action(“/different/url“) 17. public String metho

18、d2() 18. return “failure”; 19. 20. 21. 当我们访问 /hello -world !method1.action 时,返回 /WEB-INF/fail.jsp 当我们访问 /hello -world !method2.action 时,返回 /WEB-INF/fail.jsp 当我们访问 /different/url!method2.action 时,返回 /WEB-INF/fail.jsp 2 本地的(local)。 本地 results 只能在 action 方法上进行声明。Java 代码 1. package com.example.actions;

19、2. 3. import com.opensymphony.xwork2.ActionSupport; 4. import org.apache.struts2.convention.annotation.Action; 5. import org.apache.struts2.convention.annotation.Actions; 6. import org.apache.struts2.convention.annotation.Result; 7. import org.apache.struts2.convention.annotation.Results; 8. 9. publ

20、ic class HelloWorld extends ActionSupport 10. Action(value=“/other/bar“,results=Result(name = “error“, location = ““,type=“redirect“) 11. public String method1() 12. return “error”; 13. 14. 当我们调用 /hello -world !method1.action 时,返回 /WEB-INF/content/hello-error.jsp 当我们调用 /other/bar!method1.action 时,返回 重要参考:给出一些重要的参考文件,可以访问这些网站http:/

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。