Will do as will say
分类: 系统运维
2012-12-18 08:52:29
1、Action是业务控制器,是Struts2框架的核心。用户提交的所有请求,都是通过Action进行业务逻辑处理的。
Struts2中的Action就是一个普通的java类(POJO),该类通常包含一个execute()普通方法,该方法只返回一个字符串类型值。通常情况下,Struts框架中的Action会直接封装Http请求参数,一般的Action包含与请求参数对应的属性,并提供该属性的getter和setter方法。
开发者在编写自己的Action时,只要继承ActionSupport类就可以更方便、快捷实现业务控制器。
2、Struts2框架的Action强调的是与Servlet ApI完全分离的。在一般WEB应用中,需要访问的Servlet API就是HttpServlet、HttpSession、ServletContent,这三个类就包含了JSP内置对象中所应用的Request、Session和Application。
Struts2框架中有一个ActionContext类,该类中包含了所有将会访问的数据,Struts2框架的Action可以通过访问ActionContext来获取ServletAPI。
ActionContext是一个Action执行上下文,Action执行期间所用到的对象都保存在ActionContext中,例如,Session,参数等。ActinContext是一个局部线程,每个线程中的ActionContext内容都是唯一的。
开发者访问ActionContext的代码:
ActionContext context = ActionContext.getContext();
ActionContext类的常用方法:
Object get(Object key) 使用key来查找当前ActionContext中的值。
Map getApplication();返回一个Map对象,该对象为一个Servlet环境或者Application级Map.
static ActionContext getContext()静态方法,获得当前线程的ActionContext实例,
Map getParameters(); 返回一个Map类型的所有HttpServletRequest参数
Map getSession(); 返回一个Map类型的HttpSession值。
ValueStack getValueStack(); 返回一个ValueStack类型的OGNL值栈。
void put(Object key,Object value) 向当前ActionContex存入值。
void setApplication(Map application)设置application上下文。
void setSession(Map session)设置一个Session值。