`

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

 
阅读更多
先看GetRequestParameterAction类代码:
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获取参数:
		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("参数名")得到参数值。



分享到:
评论
1 楼 豆浆王子 2013-03-11  

相关推荐

    java struts2接收参数的几种方法

    本文将深入探讨Struts2接收参数的几种主要方法,包括通过Action的属性、使用Domain Model(领域模型)以及采用DTO(数据传输对象)进行参数接收。 ### 一、使用Action的属性接收参数 #### 原理 在Struts2框架中,...

    struts2中Action数据绑定几种方法.rar

    在Struts2中,Action类是处理用户请求的核心,它提供了多种数据绑定的方法,以便于从HTTP请求中获取和设置值。以下是关于Struts2中Action数据绑定的几种方法的详细说明: 1. **属性注解(Field Annotation)** ...

    Struts2的Action中获得request response session几种方法

    在Struts2框架中,Action类是处理用户请求的核心组件,它负责业务逻辑的执行以及与视图层的交互。为了使Action能够访问到HTTP请求(HttpServletRequest)、响应(HttpServletResponse)、会话(HttpSession)等关键...

    struts2中action如何获取jsp页面参数1.rar

    本教程将详细介绍如何在Struts2的Action类中获取JSP页面传递的参数。 首先,理解Struts2的工作流程至关重要。当用户通过浏览器发送一个请求时,这个请求会由Struts2的前端控制器(DispatcherServlet)拦截。接着,...

    Struts2动态方法调用

    在Struts2中,JavaScript可以用来发起Ajax请求,动态调用后台Action的方法。例如,我们可以使用jQuery的`$.ajax`或`$.post`方法,配合Struts2的ActionContext,将请求参数传递给服务器。在服务器端,Struts2会解析...

    struts2注解配置Action及拦截器几种不同方式写法对应的路径指向.docx

    Struts2 中的注解配置 Action 及拦截器几种不同方式的写法对应的路径指向是 Struts2 框架中的核心组件之一,用于处理用户请求并返回响应结果。通过对 Action、拦截器、拦截器链、路径指向和依赖关系的理解,我们可以...

    Struts2教学视频

    2. 域模型(Domain Model)是Struts2中用于封装业务数据的对象,Action可以直接引用域模型对象,将请求参数绑定到模型中。 以上就是关于Struts2的一些基础知识点,学习Struts2不仅可以帮助理解MVC模式在实际应用中的...

    JS调用Struts中的Action

    下面将详细介绍几种常见的JavaScript调用Struts Action的方法: - **通过修改URL来触发Action** ```javascript function formSubmit(url) { document.forms[0].action = url; document.forms[0].submit(); } ...

    Struts2实战(Struts2 In Action中文版)

    6. **国际化与本地化**:学习如何在Struts2中实现多语言支持,提供全球化用户体验。 7. **Tiles布局**:结合Tiles插件,创建复用性强、结构化的页面布局。 8. **异常处理**:理解Struts2的异常处理机制,如何...

    Struts2_Action

    此外,Struts2还提供了动态方法调用的机制,允许你在一个Action类中定义多种处理方式,而无需为每一种处理方式单独定义Action方法。通过在action标签中指定method属性可以实现动态方法调用。 以上内容介绍了Struts2...

    struts2验证框架参数

    在Struts2中,验证规则通常定义在XML配置文件中,通常是与特定Action关联的`validation.xml`文件内。这些规则通过一系列预定义的验证器来实现,每个验证器都有其独特的功能和参数,下面将详细介绍其中几种常见的验证...

    Struts2调试方法

    请求到达后,Struts2会根据URL映射找到对应的Action,然后通过ActionInvocation对象依次执行拦截器和Action方法。 5. **理解拦截器**:拦截器是Struts2的重要特性,它们在Action执行前后执行。调试时,可以观察拦截...

    struts2的API耦合与动态方法调用

    本文将重点讨论Struts2中的API耦合和动态方法调用,这两种特性对于理解框架的工作原理和提高代码的灵活性至关重要。 首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts...

    struts2学习笔记十(第10讲.Struts2的核心 拦截器)

    在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过在动作执行前后插入额外的处理逻辑,实现了对请求处理的增强。拦截器链是由多个拦截器按照特定顺序组成的,每个拦截器都可以执行预处理和后处理任务。...

    struts2中获得request对象

    本文将详细讲解在Struts2中获取`request`对象的几种常见方法,以及它们的适用场景。 1. **Action上下文(ActionContext)** `ActionContext`是Struts2的核心组件之一,它封装了与当前请求相关的所有上下文信息,...

    Struts2 Struts2 超好的Struts2 pdf 文档

    1. **Action**:在Struts2中,Action是业务逻辑的载体,负责处理用户请求。Action类通常会与Service层交互,完成特定的业务功能。 2. **配置**:Struts2的配置分为XML配置和注解配置两种方式。XML配置文件(struts....

    Struts2Demo2

    在Struts2Demo2中,你可能会看到以下几个关键部分: 1. **struts.xml**:这是Struts2的主配置文件,定义了Action类、结果页面、拦截器等。在这个文件中,你可以看到Action的配置,如Action类的全限定名、处理的HTTP...

    Struts2_0500_ActionMethod

    综上所述,Struts2中的Action方法是实现业务逻辑的关键组件,通过合理的配置和设计,可以有效地组织和管理Web应用的请求处理流程。理解并熟练掌握Action方法的使用,对于开发高效、稳定的Struts2应用程序至关重要。

    struts2中AJAX实现

    在Struts2中实现AJAX,主要涉及以下几个关键点: 1. **Struts2 Action和Result**:首先,你需要创建一个Struts2 Action类,它将处理客户端发送的请求。这个Action类中定义的方法对应于用户触发的操作,并返回一个...

Global site tag (gtag.js) - Google Analytics