我将一个动态Web项目移植到Struts2,并且我需要将许多servlet转换为Struts2操作。我想使用ServletRequestAware,ServletResponseAware和SessionAware接口并保持大部分代码不变。请看看我通过GOOGLin'找到的BaseAction.java类。我想使用这个,以便我可以做其他操作来简单地扩展BaseAction。将Servlet转换为Struts2操作类
BaseAction.java
public abstract class BaseAction extends ActionSupport implements SessionAware, ServletRequestAware,ServletResponseAware, ServletContextAware{
private static final long serialVersionUID = 1L;
protected Map session;
protected HttpServletRequest request;
protected HttpServletResponse response;
public String execute() throws Exception {
return doExecute();
}
protected abstract String doExecute() throws Exception;
public Map getSession() {
return session;
}
public void setSession(Map sess) {
this.session = sess;
}
public HttpServletRequest getServletRequest() {
return request;
}
public void setServletRequest(HttpServletRequest req){
this.request = req;
}
public HttpServletResponse getServletResponse() {
return response;
}
public void setServletResponse(HttpServletResponse resp) {
this.response = resp;
}
}
现在假设我有一个servlet类似以下内容: Servlet.java
public class Servlet extends HttpServlet
{
private static Logger log = Logger.getLogger(Servlet.class);
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException
{
HttpSession session=request.getSession();
Bean bean= new Bean();
bean.setName(request.getParameter("xxx"));
session.setAttribute("bean");
response.sendRedirect("login.jsp");
}
}
有人能写延长BaseAction动作类相当于Servlet? 在此先感谢。
并记住Struts2为每个请求实例化一个新的Action。一个servlet实例(以及Struts 1操作)被(可能)很多请求使用,甚至可能是并发请求。 – leonbloy 2010-09-23 20:21:11
非常感谢,这真是一个建议。 – Dhora 2010-09-23 21:04:43
setXXX方法不需要返回任何东西。 – Dhora 2010-09-23 21:05:39