Struts2访问Servlet的API
在Struts2中,Action没有直接和Servlet API进行耦合,即Action不能直接访问Servlet API。所以Struts2提供了三种方法访问Servlet API。
【通过ActionContext类访问】
ActionContext是Action执行的上下文对象,在其中保存了Action执行所需要的对象,包括parameters,request,session,application等。虽然该方法可以访问到Servlet API,但是无法直接获取Servlet API实例。下面列举ActionContext类访问Servlet API的几个常用方法:
示例代码如下:
【通过特点接口访问】
- ServletRequestAware:实现该接口的Action可以直接访问Web应用的HttpServletRequest实例。
- ServletResponseAware:实现该接口的Action可以直接访问Web应用的HttpServletResponse实例。
- ServletAware:实现该接口的Action可以直接访问Web应用的HttpSession实例。
- ServletContextAware:实现该接口的Action可以直接访问Web应用的ServletContext实例。
【通过ServletActionContext访问】
为了直接访问Servlet API,Struts2框架还提供了ServletActionContext类,其中包含了几个常用的静态方法:
- static HttpServletRequest getRequest():获取Web应用的HttpServletRequest对象。
- static HttpServletResponse getResponse():获取Web应用的HttpServletReSponse对象。
- static ServletContext getServletContext():获取Web应用的HttpServletRequest对象。
- static PageContext getPageContext ():获取Web应用的PageContext 对象。
结果界面的配置
全局结果界面
局部结果界面
Struts2的ResultType
在Struts2中,当框架调用Action对请求进行处理后,就要向用户呈现一个结果视图。在Struts2中,预定义了多种ResultType,其实就是定义了多种展示结果的技术。下图中红色的几个值比较常用。