struts2.0的实现

一.action的三种实现方式
1.继承com.opensymphony.xwork2.ActionSupport; 然后重写 execute() 方法。

public class LoginAction extends ActionSupport{
    public String execute() throws Exception {

        return "success";
    }
}

2.实现com.opensymphony.xwork2.Action 接口; 然后覆写execute()方法

public class LoginAction implement Action{
public String execute() throws Exception {

return “success”;
}
}
接在任意一个类中,写一个返回值为String类型的execute方法即可
public class LoginAction{
public String execute() throws Exception {
return “success”;
}
}

二.依赖注入三种方式
1、直接在Action中使用其的属性直接输入

class LoginAction extends ActionSupport{
     String userName;
     Stirng userPass;
     public String execute() throws Exception {
        return "success";
    }
    // userName 和userPass 的get() set()方法
}

2、使用领域对象接受用户输入。(封装到bean中 也就是pojo)

class LoginAction extends ActionSupport{
     private User user;
     public String execute() throws Exception {
        return "success";
    }
    //user的get()和set()方法
}

3、使用ModelDriven方式

class LoginAction extends ActionSupport implement ModelDriven {

     public String execute() throws Exception {
        return "success";
    }
    //覆写geModel()方法
    public object getModel(){
    return new User();
    }
}
/**
 *    在使用ModelDriven的方式下
 *    在jsp页面中,调用属性时,不用写成 name="#user.userName"
 *    可以直接写成name="userName"
 **     

三、获得servletApi的四中方式
即获得request、session等的4种方式,尽量使用IOC的方式
非IOC方式两种,即通过使用com.opensymphony.xwork2.ActionContext类
1、非IOC方式,并且通过map存放

class LoginAction extends ActionSupport{
     private User user;
     ActionContext context=ActionContext.getContext();
     //request比较特殊
     Map request=(Map)context.get("request");
     Map session=(Map)context.getSession();

     public String execute() throws Exception {
     request.put("user",user);
     session.put("user",user);
            .
            .
            .
        return "success";
    }
     //user的get()和set()方法
}

2.非IOC方式 ,通过setAttribute方式存放

class LoginAction extends ActionSupport{
     private User user;
     HttpServletRequest         request=SerevletActionContext.getRequest();
     HttpSession session=ServletActionContext.getServletContext();
     ServletContextApplicaton application=ServletActionContext.getServletContext();

     public String execute() throws Exception {
        request.setAttribute("user",User);
        session.setAttribute("user",User);
            .
            .
            .
        return "success";
    }
     //user的get()和set()方法
}

3.通过IOC方式 ,并且通过Map存放 (常用)


public class LoginAction extends ActionSupport implements SessionAware ,RequestAware,ApplicationAware{
    private User user;
    private Map session;
    private Map request;
    private Map application;

   public String execute() throws Exception {
     request.put("user",user);
     session.put("user",user);
            .
            .
            .
        return "success";
    }
     //user、application、request、session的get()和set()方法
    }

4.通过IOC方式 ,并且用setAttribute方式存放

public class LoginAction extends ActionSupport implements  ,ServletRequestAware,ServletContextAware{
    private User user;
          ..
          ..

   public String execute() throws Exception {
        request.setAttribute("user",User);
        application.setAttribute("user",User);
            .
            .
            .
        return "success";
    }
     //user、application、request、session的get()和set()方法
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值