在Struts2的Action中取得请求参数值的几种方法
Java代码
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("参数名")得到参数值。
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;
分享到:
相关推荐
本文将深入探讨Struts2接收参数的几种主要方法,包括通过Action的属性、使用Domain Model(领域模型)以及采用DTO(数据传输对象)进行参数接收。 ### 一、使用Action的属性接收参数 #### 原理 在Struts2框架中,...
在Struts2中,Action类是处理用户请求的核心,它提供了多种数据绑定的方法,以便于从HTTP请求中获取和设置值。以下是关于Struts2中Action数据绑定的几种方法的详细说明: 1. **属性注解(Field Annotation)** ...
在Struts2框架中,Action类是处理用户请求的核心组件,它负责业务逻辑的执行以及与视图层的交互。为了使Action能够访问到HTTP请求(HttpServletRequest)、响应(HttpServletResponse)、会话(HttpSession)等关键...
本教程将详细介绍如何在Struts2的Action类中获取JSP页面传递的参数。 首先,理解Struts2的工作流程至关重要。当用户通过浏览器发送一个请求时,这个请求会由Struts2的前端控制器(DispatcherServlet)拦截。接着,...
在Struts2中,JavaScript可以用来发起Ajax请求,动态调用后台Action的方法。例如,我们可以使用jQuery的`$.ajax`或`$.post`方法,配合Struts2的ActionContext,将请求参数传递给服务器。在服务器端,Struts2会解析...
Struts2 中的注解配置 Action 及拦截器几种不同方式的写法对应的路径指向是 Struts2 框架中的核心组件之一,用于处理用户请求并返回响应结果。通过对 Action、拦截器、拦截器链、路径指向和依赖关系的理解,我们可以...
2. 域模型(Domain Model)是Struts2中用于封装业务数据的对象,Action可以直接引用域模型对象,将请求参数绑定到模型中。 以上就是关于Struts2的一些基础知识点,学习Struts2不仅可以帮助理解MVC模式在实际应用中的...
下面将详细介绍几种常见的JavaScript调用Struts Action的方法: - **通过修改URL来触发Action** ```javascript function formSubmit(url) { document.forms[0].action = url; document.forms[0].submit(); } ...
6. **国际化与本地化**:学习如何在Struts2中实现多语言支持,提供全球化用户体验。 7. **Tiles布局**:结合Tiles插件,创建复用性强、结构化的页面布局。 8. **异常处理**:理解Struts2的异常处理机制,如何...
此外,Struts2还提供了动态方法调用的机制,允许你在一个Action类中定义多种处理方式,而无需为每一种处理方式单独定义Action方法。通过在action标签中指定method属性可以实现动态方法调用。 以上内容介绍了Struts2...
在Struts2中,验证规则通常定义在XML配置文件中,通常是与特定Action关联的`validation.xml`文件内。这些规则通过一系列预定义的验证器来实现,每个验证器都有其独特的功能和参数,下面将详细介绍其中几种常见的验证...
请求到达后,Struts2会根据URL映射找到对应的Action,然后通过ActionInvocation对象依次执行拦截器和Action方法。 5. **理解拦截器**:拦截器是Struts2的重要特性,它们在Action执行前后执行。调试时,可以观察拦截...
本文将重点讨论Struts2中的API耦合和动态方法调用,这两种特性对于理解框架的工作原理和提高代码的灵活性至关重要。 首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts...
在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过在动作执行前后插入额外的处理逻辑,实现了对请求处理的增强。拦截器链是由多个拦截器按照特定顺序组成的,每个拦截器都可以执行预处理和后处理任务。...
本文将详细讲解在Struts2中获取`request`对象的几种常见方法,以及它们的适用场景。 1. **Action上下文(ActionContext)** `ActionContext`是Struts2的核心组件之一,它封装了与当前请求相关的所有上下文信息,...
1. **Action**:在Struts2中,Action是业务逻辑的载体,负责处理用户请求。Action类通常会与Service层交互,完成特定的业务功能。 2. **配置**:Struts2的配置分为XML配置和注解配置两种方式。XML配置文件(struts....
在Struts2Demo2中,你可能会看到以下几个关键部分: 1. **struts.xml**:这是Struts2的主配置文件,定义了Action类、结果页面、拦截器等。在这个文件中,你可以看到Action的配置,如Action类的全限定名、处理的HTTP...
综上所述,Struts2中的Action方法是实现业务逻辑的关键组件,通过合理的配置和设计,可以有效地组织和管理Web应用的请求处理流程。理解并熟练掌握Action方法的使用,对于开发高效、稳定的Struts2应用程序至关重要。
在Struts2中实现AJAX,主要涉及以下几个关键点: 1. **Struts2 Action和Result**:首先,你需要创建一个Struts2 Action类,它将处理客户端发送的请求。这个Action类中定义的方法对应于用户触发的操作,并返回一个...