Struts2 相比 Struts1 而言,不用直接訪問 Servlet API, 使得 Action 可以脫離 Web 容器進行測試。那么 Struts2 訪問 Servlet API 有三種方式:
1.使用 ActionContext
在程序中使用 ActionContext ac = ActionContext.getContext(); 獲取到ActionContext的一個實例,然后使用ac.put("key", "value");將信息返回給Web前端。但使用該方法需要在Action類中實現request參數的setter()和getter()方法。如:在表單提交的數據中有username參數,則需要有setUsername()和getUsername()方法。
2.使用 ***Aware 接口
將Action類實現該接口,然后通過該接口中的 setServletRequest(HttpServletRequest request) 方法獲取到Servlet API。然后使用 request.setAttribute("key","value");將信息返回給Web前端。
3.使用 ServletActionContext 類
使用該方法可以直接通過調用該類中的靜態方法獲取到 Servlet API。如,ServletActionContext.getRequest();