接上一篇文章

package test; import com.opensymphony.xwork2.ActionSupport; import javax.servlet.http.*; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import java.util.*; public class HelloAction extends ActionSupport { public String jname = ""; public String jid = ""; @Override public String execute() throws Exception { // TODO Auto-generated method stub return super.execute(); } private String str = ""; public String hello() { this.str = "hello!!!"; System.out.println("方法一,把參數作為Action的類屬性,讓OGNL自動填充:"); System.out.println("jname:" + jname + " jid:" + jid); ActionContext context=ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST); System.out.println("方法二,在Action中取得HttpServletRequest對象,使用request.getParameter獲取參數"); System.out.println("jname:" + request.getParameter("jname") + " jid:" + request.getParameter("jid")); Map parameterMap=context.getParameters(); String bookName2[]=(String[])parameterMap.get("jname"); String bookPrice2[]=(String[])parameterMap.get("jid"); System.out.println("方法三,在Action中使用ActionContext得到parameterMap獲取參數:"); System.out.println("jname: " +bookName2[0]); System.out.println("jid: " +bookPrice2[0]); return "success"; } public String getStr() { return str; } public void setStr(String str) { this.str = str; } public String getJname() { return jname; } public void setJname(String jname) { this.jname = jname; } public String getJid() { return jid; } public void setJid(String jid) { this.jid = jid; } }
總結:
方法一:當把參數作為Action的類屬性,且提供屬性的getter/setter方法時,xwork的OGNL會自動把request參數的值設置到類屬性中,此時訪問請求參數只需要訪問類屬性即可。
方法二:可以通過ActionContext對象Map parameterMap=context.getParameters();方法,得到請求參數Map,然后通過parameterMap來獲取請求參數。需要注意的是:當通過parameterMap的鍵取得參數值時,取得是一個數組對象,即同名參數的值的集合。
方法三:通過ActionContext取得HttpServletRequest對象,然后使用request.getParameter("參數名")得到參數值。
參考:http://www.cnblogs.com/bmbm/archive/2011/11/28/2342273.html