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

来源:互联网 发布:linux系统查看cpu 编辑:程序博客网 时间:2024/04/30 16:45

先看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方法时,xworkOGNL会自动把request参数的值设置到类属性中,此时访问请求参数只需要访问类属性即可。

· 方法二:可以通过ActionContext对象Map  parameterMap=context.getParameters();方法,得到请求参数Map,然后通过parameterMap来获取请求参 数。需要注意的是:当通过parameterMap的键取得参数值时,取得是一个数组对象,即同名参数的值的集合。

· 方法三:通过ActionContext取得HttpServletRequest对象,然后使用request.getParameter("参数名")得到参数值。 

0 0
原创粉丝点击