struts2.0的实现

来源:互联网 发布:我们都是超能力者 知乎 编辑:程序博客网 时间:2024/06/06 10:40

一.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()方法    }
0 0
原创粉丝点击