在Struts2的Action中取得請求參數值的幾種方法 .

先看Action類代碼

 

  
  
  
  
  1. public class TestAction extends ActionSupport {     
  2.     
  3.     private String bookName;     
  4.     private String bookPrice;     
  5.          
  6.     public String getBookName() {     
  7.         return bookName;     
  8.     }     
  9.     
  10.     public void setBookName(String bookName) {     
  11.         this.bookName = bookName;     
  12.     }     
  13.     
  14.     public String getBookPrice() {     
  15.         return bookPrice;     
  16.     }     
  17.     
  18.     public void setBookPrice(String bookPrice) {     
  19.         this.bookPrice = bookPrice;     
  20.     }     
  21.          
  22.          
  23.     public String  execute() throws Exception{     
  24.              
  25.              
  26.         //方式一: 將參數做爲Action的類屬性,讓OGNL自動填充     
  27.               
  28.         System.out.println("方法一,把參數做爲Action的類屬性,讓OGNL自動填充:");     
  29.         System.out.println("bookName: "+this.bookName);     
  30.         System.out.println("bookPrice: " +this.bookPrice);     
  31.              
  32.              
  33.         //方法二:在Action中使用ActionContext獲得parameterMap獲取參數:     
  34.         ActionContext context=ActionContext.getContext();     
  35.         Map  parameterMap=context.getParameters();     
  36.              
  37.         String bookName2[]=(String[])parameterMap.get("bookName");     
  38.         String bookPrice2[]=(String[])parameterMap.get("bookPrice");     
  39.              
  40.         System.out.println("方法二,在Action中使用ActionContext獲得parameterMap獲取參數:");     
  41.         System.out.println("bookName: " +bookName2[0]);     
  42.         System.out.println("bookPrice: " +bookPrice2[0]);     
  43.              
  44.              
  45.         //方法三:在Action中取得HttpServletRequest對象,使用request.getParameter獲取參數     
  46.         HttpServletRequest request = (HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST);      
  47.               
  48.         String bookName=request.getParameter("bookName");     
  49.         String bookPrice=request.getParameter("bookPrice");     
  50.              
  51.         System.out.println("方法三,在Action中取得HttpServletRequest對象,使用request.getParameter獲取參數:");     
  52.         System.out.println("bookName: " +bookName);     
  53.         System.out.println("bookPrice: " +bookPrice);     
  54.         return SUCCESS;     
  55.              
  56.     }     
  57.     
  58. }   

總結: 
數組


    • 方法一:當把參數做爲Action的類屬性,且提供屬性的getter/setter方法時,xwork的OGNL會自動把request參數的值設置到類屬性中,此時訪問請求參數只須要訪問類屬性便可。
    • 方法二:能夠經過ActionContext對象Map  parameterMap=context.getParameters();方法,獲得請求參數Map,而後經過parameterMap來獲取請求參數。須要注意的是:當經過parameterMap的鍵取得參數值時,取得是一個數組對象,即同名參數的值的集合。
    • 方法三:經過ActionContext取得HttpServletRequest對象,而後使用request.getParameter("參數名")獲得參數值。 

 

Struts2中Action接收參數的方法主要有如下三種:
1.使用Action的屬性接收參數:
    a.定義:在Action類中定義屬性,建立get和set方法;
    b.接收:經過屬性接收參數,如:userName;
    c.發送:使用屬性名傳遞參數,如:user1!add?userName=Magci;
2.使用DomainModel接收參數:
    a.定義:定義Model類,在Action中定義Model類的對象(不須要new),建立該對象的get和set方法;
    b.接收:經過對象的屬性接收參數,如:user.getUserName();
    c.發送:使用對象的屬性傳遞參數,如:user2!add?user.userName=MGC;
3.使用ModelDriven接收參數:
    a.定義:Action實現ModelDriven泛型接口,定義Model類的對象(必須new),經過getModel方法返回該對象;
    b.接收:經過對象的屬性接收參數,如:user.getUserName();
    c.發送:直接使用屬性名傳遞參數,如:user2!add?userName=MGC;ide

 

相關文章
相關標籤/搜索