struts2依赖注入.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
struts2依赖注入

Struts2基础描述 Struts2变化 MVC框架最主要的两个功能是页面对象参数与Action Model的转换 与 页面流转控制,我们考察框架时也多从这两点入手。 Struts2模式上的变动: ?? 一、Action 从singleton bean 改为了per request的prototype bean。之前Struts1为了线程安全,action里面没有任何成员变量,在一个处理函数里输入输出都靠request,response参数搞定。 ?? 二、将很多处理透明的分解到了Interceptor Chain中, 因此,Struts2中Action在MVC里的位置,从Controller转为了Model 有属性、有行为且不依赖Request/Response的POJO ,而Controller的角色则由Struts2亲自担当。 Struts2实际上的简化: 1.输入输出: FormBean与Action合一,直接读写成员变量,不再需要FormBean或LazyBean,不再需要从request读写数据,每个函数不再需要长长的Request/Response参数。 实用的Prepareable接口和ModelDriven接口,比在在update时先从数据库载入拥有10个属性的对象,然后从页面绑定其中5个属性,整个过程很完美。 2.配置文件: Zero-Config与Code-Bind,基于约定与annotation实现零配置文件。 支持配置的继承与扩展,? 可以预设通用的配置。 零配置文件 Zero Config能根据web.xml中配置的actionPackages自动扫描所有Action类,并猜测其NameSpace. 再利用CodeBehind猜测Result指向的jsp,实现了struts.xml的零配置 其实也不是完全没有struts.xml,而是指struts.xml的内容不会随action的增加而膨胀 如果有特殊的结果指向 如redirect类型的结果 ,在Action处用@Result配置。 如有package级的配置 如使用非默认的Interceptor栈 ,仍在struts.xml中定义package,用@ParentPackage指定。 不过,目前ZeroConfig的Annotation较少,只有@Result、@ParentPackage,@NameSpace java的package名不符合约定规则时使用 ,还有exception-Mapping之类的配置没有包含。 1.ZeroConfig 在Web.xml 中设置ActionPackages ,则 Struts2会自动扫描这些Package下的Class,Class名含Action或扩展子ActionSupport的类都将被载入。 其中actionPackages的设置很有学问,比如 .ulearning.web, 则.ulearning.web.user.RoleAction,访问路径就会被自动的猜测为? /user/role.action 如果package名不符合这个规则,就需要自行设定NameSpace了,可以用Namespace annotation。又或者用ParentPackage annotation指定package,再在struts.xml中定义package的namespace. filter-name struts2 /filter-name filter-class org.apache.struts2.dispatcher.FilterDispatcher /filter-class init-param param-name actionPackages /param-name param-value com.ulearing.web /param-value /init-param 在Action类中,用Annotation 对特殊的RELOAD返回值进行了注释,其余的results就交给code-behind去猜了。 @Results @Result name CRUDActionSupport.RELOAD, value /role, type ServletActionRedirectResult.class public class RoleAction ?2.CodeBehind 指定JSP的默认目录在/WEB-INF/jsp 下,原因就是希望保护jsp不能被直接打开,安全模块只要保护Action的地址即可 ? constant name struts.codebehind.pathPrefix value /WEB-INF/jsp/ / 1. 可以用 /user/login.actio

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档