Struts的动作类

1、动作类的编写

方式一:动作类就是一个POJO(Plain Old Java Object)
特点:不继承任何的类或接口,不依赖其他的东西。

public class HelloAction{
    //动作方法:
    //特点:public,返回String;没有参数
    public String execute(){
        System.out.println("动作方法execute执行了");
        return "success";
    }
}

方式二:动作类实现


public class Demo1Action implements Action {

    public String execute() throws Exception {
        /*可以使用接口中定义的常量
         * SUCCESS:一切OK
         * NONE:不返回任何的结果视图。等同null
         * ERROR:出错了
         * INPUT:数据回显
         * LOGIN:要求登陆
         */
        return ERROR;
    }

}

方式三:动作类一般选择继承com.opensymphony.xwork2.ActionSupport

public class Demo2Action extends ActionSupport {
    public String add() {
        System.out.println("add执行了");
        return SUCCESS;
    }

}

优势:可以使用Action接口中的常量;提供用户输入验证功能;消息提示的国际化功能等。

二、动作类的动作方法调用

2.1 动作方法编写特点:

public
返回String类型数据
没有参数
一般都是实例的

2.2 如何调用动作方法

方式一:在struts.xml配置文件中通过method来指定。默认值是execute
方式二:使用通配符 *
动作类调用

三、在动作类中使用Servlet的API

方式一:使用ServletActionContext。在任何地方都可以获取到

public class UserAction extends ActionSupport {
    public String login(){
            //向HttpSession中存放标记
    //      PageContext pc = ServletActionContext.getPageContext();
            HttpServletRequest request = ServletActionContext.getRequest();
            HttpSession session  = request.getSession();
            HttpServletResponse response = ServletActionContext.getResponse();
            ServletContext sc = ServletActionContext.getServletContext();
            System.out.println(request);
            System.out.println(session);
            System.out.println(response);
            System.out.println(sc);
            return SUCCESS;
        }
}

方式二:实现Servlet[Request]Aware接口

public class Demo3Action extends ActionSupport implements ServletRequestAware,ServletContextAware {

    private HttpServletRequest request;
    private ServletContext servletContext;
    public String execute() throws Exception {
        System.out.println(request);
        System.out.println(servletContext);
        return SUCCESS;
    }
    //实现接口中的方法。框架会在执行动作方法前,先调用该方法,把你想要的request对象注入进来
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }
    public void setServletContext(ServletContext servletContext) {
        this.servletContext = servletContext;
    }

实现原理:Struts2的拦截器。servletConfig做的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值