Chinaunix首页 | 论坛 | 博客
  • 博客访问: 945402
  • 博文数量: 264
  • 博客积分: 10107
  • 博客等级: 上将
  • 技术积分: 2455
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-09 16:34
文章分类

全部博文(264)

文章存档

2012年(1)

2011年(11)

2010年(128)

2009年(82)

2008年(42)

我的朋友

分类: Java

2010-04-02 17:29:18

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

文章分类:Java编程
先看GetRequestParameterAction类代码:
Java代码 复制代码
  1. public class GetRequestParameterAction 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("参数名")得到参数值。
阅读(1331) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~