Struts2 的Action中取得请求参数值的几种方法

  • public class GetRequestParameterAction extends ActionSupport {    
  •     
  •     private String bookName;    
  •     private String bookPrice;    
  •         
  •     public String getBookName() {    
  •         return bookName;    
  •     }    
  •     
  •     public void setBookName(String bookName) {    
  •         this.bookName = bookName;    
  •     }    
  •     
  •     public String getBookPrice() {    
  •         return bookPrice;    
  •     }    
  •     
  •     public void setBookPrice(String bookPrice) {    
  •         this.bookPrice = bookPrice;    
  •     }    
  •         
  •         
  •     public String  execute() throws Exception{    
  •             
  •             
  •         //方式一: 将参数作为Action的类属性,让OGNL自动填充    
  •              
  •         System.out.println("方法一,把参数作为Action的类属性,让OGNL自动填充:");    
  •         System.out.println("bookName: "+this.bookName);    
  •         System.out.println("bookPrice: " +this.bookPrice);    
  •             
  •             
  •         //方法二:在Action中使用ActionContext得到parameterMap获取参数: 
  •                      这个map只能读取不能写入,写入也不报错,但是不能被读出   
  •                     (请求参数的值对应字符串数组)
  •         ActionContext context=ActionContext.getContext();    
  •         Map  parameterMap=context.getParameters();    
  •          // 请求参数的值对应字符串数组
  •         String bookName2[]=(String[])parameterMap.get("bookName");    
  •         String bookPrice2[]=(String[])parameterMap.get("bookPrice");    
  •             
  •         System.out.println("方法二,在Action中使用ActionContext得到parameterMap获取参数:");    
  •         System.out.println("bookName: " +bookName2[0]);    
  •         System.out.println("bookPrice: " +bookPrice2[0]);    
  •             
  •             
  •         //方法三:在Action中取得HttpServletRequest对象,使用request.getParameter获取参数    
  •         HttpServletRequest request = (HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST);     
  •              
  •         String bookName=request.getParameter("bookName");    
  •         String bookPrice=request.getParameter("bookPrice");    
  •             
  •         System.out.println("方法三,在Action中取得HttpServletRequest对象,使用request.getParameter获取参数:");    
  •         System.out.println("bookName: " +bookName);    
  •         System.out.println("bookPrice: " +bookPrice);    
  •         return SUCCESS;    
  •             
  •     }    
  •     
  • }    
  • 总结: 

    方法一:当把参数作为Action的类属性,且提供属性的getter/setter方法时,xwork的OGNL会自动把request参数的值设置到类属性中,此时访问请求参数只需要访问类属性即可。 
    方法二:可以通过ActionContext对象Map  parameterMap=context.getParameters();方法,得到请求参数Map,然后通过parameterMap来获取请求参数。需要注意的是:当通过parameterMap的键取得参数值时,取得是一个数组对象,即同名参数的值的集合。 
    方法三:通过ActionContext取得HttpServletRequest对象,然后使用request.getParameter("参数名")得到参数值。

    相关文章:

    • 2021-12-02
    • 2021-12-28
    猜你喜欢
    • 2021-07-11
    • 2021-11-13
    • 2021-09-01
    • 2021-11-28
    • 2021-07-03
    相关资源
    相似解决方案