Struts 2——Action与Result

1、Action实现

Structs2在大多数情况下,会继承ActionSupport类,并重写类中的execute()方法(这取决于action配置中的method属性,如果是默认的情况下,执行的是execute方法),直接使用Action来封装HTTP请求参数,因此Action类里还应该包含于请求参数相对应的属性,以及其setter和getter方法。

下面是一个Action类的基本代码框架:

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {
    public String execute() throws Exceptions{
    //执行函数
    return SUCCESS;//SUCCESS="success"
    }
}

在execute方法内部,我们需要实现的功能如下:

  1. 收集用户传递过来的数据。//拦截器实现
  2. 把收集来的数据转换成逻辑层接受的类型和格式。
  3. 调用逻辑层接口,来执行业务逻辑处理。//调用或直接写在execute中
  4. 准备下一个页面所需要的数据,存放在相应位置。
  5. 转向下一个页面。

在Struts2中,Action已经与Servlet API完全分离,但我们在实现业务逻辑的过程中,经常需要访问到Servlet中的对象,如session,application等。
通常访问的Servlet Api是HttpServletRequest,HttpSession,ServletContext这三个接口,分别对应JSP的内置对象request,session和application。
在Struts2框架中访问Servlet API可以直接通过对ActionContext类访问,也可以通过xxxAware接口访问。

1.1 通过ActionContext类访问。

ActionContext是Action执行时的上下文,可以看做一种容器,存放的是Action运行期间所有用到的数据,例如session会话和客户端提交的参数。

ActionContext context = ActionContext.getContext();
context.put("name","lqy");//在context对象中放key-value键值对
context.getSession().put("name","lqy");//在session对象中放key-value键值对
context.getApplication.put("name","lqy");//在application对象中放键值对
Map getApplication();//返回Map类型的application
Map getSession();//返回Map类型的session
Map getParameter();//返回获得所有请求参数的Map对象

1.2 通过xxxAware接口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值