處理數(shù)據(jù)的三個步驟
1.請求數(shù)據(jù)封裝
2.調(diào)用service處理業(yè)務(wù)邏輯,拿到結(jié)果數(shù)據(jù)
3.數(shù)據(jù)保存到域中
方式一 、通過ServletApi
//直接拿到servletApi,執(zhí)行操作
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
ServletContext servletContext = ServletActionContext.getServletContext();
//保存
request.setAttribute("request_data","request_data");
session.setAttribute("session_data","session_data");
servletContext.setAttribute("context_data","context_data");
方式二、 通過Action類
//推薦:解藕的方式實現(xiàn)對數(shù)據(jù)的操作
ActionContext ac = ActionContext.getContext();
//拿到struts對HttpServletRequest進行了封裝,封裝為一個map
//拿到表示request對象map
Map<String, Object> request = ac.getContextMap();
//拿到表示Session對象map
Map<String, Object> session = ac.getSession();
//拿到表示servletContext對象map
Map<String, Object> application = ac.getApplication();
//數(shù)據(jù)
request.put("request_data","request_data_request_data ");
session.put("session_data","session_data_request_data ");
application.put("context_data","context_data_request_data ");
方式三、實現(xiàn)接口的方法
package action;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import java.util.Map;
/**
* 數(shù)據(jù)處理 方式三,實現(xiàn)接口的方法
*/
public class DataAction2 extends ActionSupport implements RequestAware, SessionAware, ApplicationAware {
private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application;
//struts運行的時候,會把代表request的map對象注入
public void setRequest(Map<String, Object> request) {
this.request = request;
}
public void setSession(Map<String, Object> session) {
this.session = session;
}
public void setApplication(Map<String, Object> application) {
this.application = application;
}
@Override
public String execute() throws Exception {
request.put("request_data","request_data_request_Aware ");
session.put("session_data","session_data_request_Aware ");
application.put("context_data","context_data_request_Aware ");
return SUCCESS;
}
}