接上一篇文章


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 = "";@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubreturn 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