我將一個動態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