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. **通过getter和setter方法获取参数** 这是最常见的方式,Struts2会自动将请求参数与Action类的属性进行匹配。...
在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...
- `param1`和`param2`需要在action1中定义对应的getter和setter方法,以便能够获取到这些参数值。 - 如果只需要传递一个参数,那么在action1中只需定义该参数的getter方法,在action2中则需同时定义getter和setter...
在这个例子中,Struts2会解析请求参数,创建一个User对象列表,并将每个用户的名字设置进去。 总的来说,Struts2提供了一套灵活的参数接收机制,包括但不限于直接通过setter方法、使用注解和处理复杂类型。这种设计...
为Action的属性注入值是Struts2的一个关键特性,使得我们可以方便地从请求参数中获取数据并绑定到Action实例上,以便后续的业务处理。 这个特性主要依赖于Struts2的OGNL(Object-Graph Navigation Language)表达式...
另一种方法是利用ActionContext来传递参数,ActionContext在Action执行的上下文中存储了请求和 session 的数据。你可以在Action中将参数放入ActionContext,然后在结果页面中通过HttpServletRequest对象获取: ```...
Struts2作为一款流行的Java Web框架,其在处理用户请求时提供了多种获取参数的方法,以实现与视图层的解耦合,便于测试和管理。本文将详细解析Struts2获取参数的三种主要方式:属性驱动、模型驱动以及对象驱动。 1....
在Struts2中,我们可以使用Action类来接收和处理请求参数。Action类是业务逻辑的载体,它通常会有一个或多个方法(称为执行方法)与特定的URL路径关联。当用户发送一个HTTP请求到服务器,Struts2拦截器会解析请求,...
开发者可以直接通过ActionContext获取请求参数。例如,可以在Action类的方法中获取名为"name"的参数: ```java public class MyAction extends ActionSupport { public String execute() { ActionContext ...
此外,我们还可以在Action类中使用`params`拦截器或`ActionContext`来手动获取请求参数。 **简单的表单数据验证** Struts2提供了一套强大的验证框架,可以帮助开发者实现表单数据的验证。验证可以通过注解、XML...
3. Struts自动将请求参数值绑定到ActionForm的属性上,这得益于JavaBean规范中的getter和setter方法。 4. ActionServlet调用ActionForm的validate()方法进行表单验证。 5. 如果验证成功,ActionServlet将ActionForm...
Struts2框架提供了一个名为ActionContext的类,该类中提供了一些方法来获取请求参数,例如getParameters()方法可以获取请求参数。 3. 使用原生Servlet的API接收请求参数 Struts2框架提供了一个名为...
Struts2会自动将请求参数的值注入到这些属性中。 2. **使用`@Params`注解**:如果参数名与Action属性不匹配,或者需要对参数进行类型转换,可以使用`@Params`注解来指定映射关系和转换规则。 3. **ModelDriven模式...
4. **使用ActionContext**:虽然不推荐,但你也可以通过`ActionContext`来获取请求参数。在Action的方法中,你可以这样做: ```java public String execute() { Map, Object> parameters = ActionContext....
在Struts2框架中,获取页面表单提交的值是一个常见的需求,这涉及到Struts2如何解析请求参数、如何在Action类中访问这些参数以及如何处理复杂的对象模型。以下将详细解析Struits2中获取页面值的方法,包括基本类型...
本教程将介绍如何使用IntelliJ IDEA和Struts2框架实现Action类接收参数的三种常见方式,这对于JavaWeb开发初学者来说是极其重要的基础知识。 首先,我们需要了解Struts2框架。Struts2是一个基于MVC(Model-View-...
- Struts2会自动根据`Action.LOCALE_KEY`获取当前用户的Locale,并应用于国际化消息的显示。 #### 五、Action Mapping - **ActionMapping**:定义了Action的映射关系,包括Action的名称、方法等信息。 - 默认使用`...
总的来说,Action获取请求参数的三种方式各有优劣,开发者可以根据实际情况灵活选择,以实现最佳的代码设计和业务逻辑处理。了解并熟练掌握这些技巧,对于提升Java Web开发效率和代码质量具有重要意义。
当请求被处理时,Struts2会自动将请求参数值绑定到Action类的相应属性上,这一过程称为“自动类型转换”。 例如,如果你有一个名为`saveUser`的方法,接收一个`User`对象作为参数,`User`类中有`name`和`email`字段...