首页 > 其他 > 详细

Struts2配置详解

时间:2015-12-11 01:14:34      阅读:261      评论:0      收藏:0      [点我收藏+]

Struts2配置详解

1、result的name属性

  Action中的预定义的字符串常量可以和result的name对应

  SUCCESS、INPUT、ERROR……

  name可以是定义的任意字符串,和Action返回的结果一致即可

  result配置一般使用绝对路径,绝对路径以斜杠(/)开头

 

2、result的type属性

  type属性指定result的类型,不同类型的result代表了不同的结果输出

  默认取值dispatcher,将请求转发(forward)到本应用程序里指定的资源

  可以在struts-default.xml中查看result的类型

 redirect:请求重定向到指定的URL(可以是页面也可以是Action)

 redirectAction:请求重定向到指定的Action

 chain: Action链式处理,将请求转发(forward)到指定的Action

 json:实现Ajax时返回JSON对象

 可以自定义结果类型

 

小结

 result的type属性

 dispatcher与redirect的区别

 dispatcher转发形式,把参数等资源转发给本资源

 redirect重定向到指定URL,参数等资源丢失

 redirect与redirectAction的区别

 redirect跳转页面或Action;可以跳转到本应用程序内部或者外部

 redirectAction跳转Action;只能跳转本应用程序内部

 

 全局结果小结

  使用<result>来配置,只不过不是在<action>中嵌套,而是在<global-results>中嵌套,当所有Action需要共享某个结果时,可以定义为全局结果。比如,类似登录页面这样的公共页面、错误页面、异常页面

  全局结果的影响范围为整个包的所有Action,如果不是对所有Action都有效的结果,不要定义在<global-results>中

 result总结

  name属性:result逻辑名,和Action里的返回值匹配,默认“success”

  type属性:结果类型,默认dispatcher

  全局结果:通过<global-results>配置,对包内所有Action都有效的结果

  动态结果:执行结果在配置时并不知道,在运行时刻才能确定,使用${}

技术分享

  struts.xml(package不能重名,而且必须继承一个类,而actiion和result都可以重名)

namespace

 struts.xml中<package>的namespace,配置了命名空间,访问时需要加上命名空间取值为""或者不配置时,代表不管路径有多深,只要Action的名字匹配上就可以

默认为""

一般以模块进行命名

 

Action搜索顺序

http://localhost:8080/p1/p2/p3/login,Struts2的搜索顺序是

1首先搜索namespace为/p1/p2/p3的package,如若这个package不存在则转至步骤2

2搜索namespace为/p1/p2的package,如若这个package不存在,则转至步骤3

3搜索namespace为/p1的package,如若这个package不存在,则转至步骤4

4到默认namespace的package里面去搜索此action,所谓默认namespace的package,就是没有

     namespace或者namespace为空字符串(“”)的package,如若在默认namespace的package里面

     还是找不到该 action,则报404提示找不到此命名空间和action

 

根据模块拆分struts.xml

 技术分享

 

 Struts2异常机制

<exception-mapping>:局部异常映射。指定在Action方法抛出指定异常的时候跳转到哪个指定的  

    结果视图

   result属性:发生异常后要跳转到的结果视图

   exception属性:指定了一个Exception的全类名,如果Action的方法抛出的异常是这个

    Exception类或子类的实例,就会跳转到result指定的结果去

<global-exception-mappings>:全局异常映射

 <package>的子元素

要配置一个全局结果<global-results>

 <global-results>应该在<global-exception-mappings>之前

 可以声明到一个父包中,被其它包继承

 

访问Servlet API

  Struts2的Action实现了MVC中C层的作用

  针对请求向用户显示所在城市信息

  登录后保存用户信息

  保存当前在线人数

传统Servlet API类型

  HttpServletRequest

  HttpSession

  ServletContext

 Struts2中传统Servlet API类型被处理成Map类型

  访问更方便

  不依赖传统Servlet API类型——解耦合

 关于ActionContext

  所在包com.opensymphony.xwork2

  ActionContext被称为Action上下文或Action环境

  ActionContext提供每个Action运行时与之相关的所有信息

 访问Servlet API

  ActionContext类提供getContext()方法获得实例

  通过ActionContext类的实例可获得Map类型的请求、会话等

  通过put()和get()方法在Map类型的对象中存取数据

 在 struts.xml 文件中,声明全局异常映射,以及对应的全局异常转发如下所示:

<global-results>
    <result name="error">/admin/error/ErrDisplay.ftl</result>
</global-results>
<global-exception-mappings>
    <exception-mapping result="error" exception="com.orizone.hbmobile.hbcm.struts.BusinessException"></exception-mapping>
</global-exception-mappings>

 

来自 <http://blog.sina.com.cn/s/blog_4b62e4a901008jlo.html>

 

Struts2配置详解

原文:http://www.cnblogs.com/xuerong/p/5037730.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!