struts2_1

来源:互联网 发布:prize软件优势 编辑:程序博客网 时间:2024/05/26 08:42

<一>Action访问ServletAPI

1、ActionContext类
  ActionContext.getContext().get("");//类似于Request的getAttribute()方法
  ActionContext.getContext().getSession();//返回一个map对象,模拟了HttpSession实例
  ActionContext.getContext().getApplication();//返回一个map对象,模拟了ServletContext()
  ActionContext.getContext();//获取ActionContext
  ActionContext.getContext().getParameters();//获取所有的请求参数,类似于HttpServletRequest对象的getParameterMap()
  ActionContext.getContext().setApplication(Map application);
  ActionContext.getContext().setSession(Map session);

2、Action直接访问ServletAPI
  实现接口,重写方法,获得实例
  ServletContextAware->ServletContext setServletContext(ServletContext context)
  ServletRequestAware->HttpServletRequest setServletRequest(HttpServletRequest request)
  ServletResponseAware->HttpServletResponse setServletResponse(HttpServletResponse response)

3、使用ServletActionContext访问ServletAPI
  ServletActionContext工具类提供了一系列静态方法
  static PageContext getPageContext()->PageContext
  static HttpServletRequest getRequest()->HttpServletRequest
  static HttpServletResponse getResponse()->HttpServletResponse
  static ServletCOntext getServletContext()->ServletContext()

<二>配置action
1、<package.../>
    name:必要属性,指定包名,是其他包引用的key
    extends:继承其他包
    namespace:可选属性,无时默认命名空间
 ....namespace="/"指定根命名空间,请求为/XX/XX.action,先找XX.action,木有找默认命名空间
    abstract:可选属性,指定该包为抽象包,不含action
    默认第一个包配置:
    <package name="default" extends="struts-default"></package>
 ....struts-defalut为父包->struts2-core-2.2.jar->struts-defalut.xml

2、<action.../>逻辑控制器->指定的视图资源传递给客户(配置逻辑视图和物理视图间映射)
    name:即是action名,也指定action所处理的请求
    class:指定action的实现类(类反射),无时,默认ActionSupport类
    method:action调用指定方法,无时,默认execute()方法
2.1、子元素:<result...>/XX.jsp</result>
2.2、action的动态方法调用
    DMI(Dynamic Method Invocation)
    action属性为actionName!methodName的形式(actionName为提交到哪个Action,methodName指定提交到的指定方法)
2.3、默认配置action,无对应action时,默认action处理用户请求,可以处理如何命名空间的请求
   ....默认Action为simpleViewResultAction
   <default-action-ref name="simpleViewResultAction"/>
   ....通过action元素配置默认Action
   <action name="simpleViewResultAction" class="lee.SimpleViewResultAction">
      <result...></result>
   </action>
2.4、配置action默认的处理类
    ....默认class="ActionSupport"
    ....开发者自定义<default-class-ref.../>,属性class
    <default-class-ref class="com.opensymphony.xwork2.ActionSupport"/>
3、配置处理结果(逻辑视图名与物理视图资源间映射关系)
3.1、Action处理用户请求->返回一个逻辑视图(普通字符串)->struts2接受逻辑视图->转发->视图资源(将处理结果呈献给客户)
3.2、逻辑视图,普通字符串,有利于Action2与Struts2框架分离,提高代码复用性
3.3、多种结果映射,JSP、FreeMaker、Action(链式处理)
4、配置结果
4.1、<result.../>局部结果、全局结果
    name:默认SUCCESS
    type:默认dispatcher(用于与JSP整合的结果类型)
    <param name="location">/XX.jsp</param> name->常见location/parse两个参数 
5、Struts2支持的结果类型
   JSP、Velocity、FreeMarker.etg结果类型->决定调用哪种视图资源呈现结果
   结果类型->Struts.defalut.xml
   所有类型的通用接口:ServletDispathcerResult
   FreeMarker整合的结果类型:FreemarkerResult
   控制特殊Http行为的结果类型:HttpHeaderResult
   跳转到其他URL的结果类型:ServletRedirectResult
   跳转到其他Action的结果类型:ServletActionRedirectResult
   向浏览器返回InputStream的结果类型:StreamResult
   用于整合Velocity的结果类型:VelocityResult
   用于整合XML/XSLT的结果类型:XSTLResult
   用于显示某个页面原始代码的结果类型:PlainTextResult

 


   
10-9-29
11-3-20
11-6-20
11-9-20
11-12-20
12-3-20
12-6-20
12-12-20
13-4-3

 

 

 

 

  

0 0