struts2里面有三种方法可以获取request,最好使用ServletRequestAware接口通过IOC机制注入Request对象。
在Action中获取request方法一:
在Action中的代码:
Map request = (Map)ActionContext.getContext().get("request");
List<Task> tasks = taskManager.findAll();
request.put("tasks", tasks);
在JSP页面中获取其中的值:
<s:iterator id="task" value="#request.tasks">
<tr class="table_header">
<td><s:property value="#task.tname"/></td>
<td><s:property value="#task.tuid"/></td>
<td><s:property value="#task.tstartTime"/></td>
<td><s:property value="#task.tendTime"/></td>
<td><s:property value="#task.tstate"/></td>
<td><input type="radio" id="choose" name="choose" onclick="getId(this.value)" value="<s:property value='#task.tid'/>"/></td>
</tr>
</s:iterator>
--------------------------------------------------------------------------------------------
方法二:通过ServletActionContext类来获取,使用struts2经验如果处理get传参是中文,只能使用该方法进行处理乱码问题
Action中代码:
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("username", "zhangsan");
在jsp中获取其中的值
<s:property value="#request.username">或者${requestScope.req}
--------------------------------------------------------------------------------------------
方法三:通过ServletRequestAware接口通过IOC机制注入Request对象
Action中的代码:
Action实现ServletRequestAware接口,实现接口中的方法
private HttpServletRequest request;
//实现接口中的方法
public void setServletRequest(HttpServletRequest request){
this.request = request;
}
//然后在execute()方法中就可以使用了
public String execute(){
request.setAttribute("username", "zhangsan");
request.getSession().getServletContext().getApplication(); //得到Application
}
该方法必须要实现,而且该方法是自动被调用
这个方法在被调用的过程中,会将创建好的request对象通过参数的方式传递给你,你可以用来赋给你本类中的变量,然后request就可以使用了
注意:setServletRequest()方法一定会再execute()方法被调用前执行
在jsp页面中获取其中的值
<s:property value="#request.task.tname"/>
分享到:
相关推荐
本文将详细讲解在Struts2中获取`request`对象的几种常见方法,以及它们的适用场景。 1. **Action上下文(ActionContext)** `ActionContext`是Struts2的核心组件之一,它封装了与当前请求相关的所有上下文信息,...
Struts2中获得Request,Response的几种方法,有代码作为参考。
Struts2的拦截器机制也是获取request、response、session的一种方式。默认情况下,Struts2已经配置了一些拦截器,例如`servletConfig`拦截器,它可以提供对servlet API的访问,包括request、response、session等。 ...
在Struts2中,可以通过以下几种方式来获取request和response对象: 1. **使用Struts2提供的拦截器:** - Struts2提供了一组内置的拦截器,包括`ServletRequestAware`和`ServletResponseAware`,它们分别用于注入...
ValueStack是Struts2中用于管理Action实例和模型对象的栈结构。通过Ognl(Object-Graph Navigation Language)表达式,我们可以直接在JSP页面中访问ValueStack中的任何对象和属性。例如,`...
以下是关于Struts2中Action数据绑定的几种方法的详细说明: 1. **属性注解(Field Annotation)** Struts2支持使用JavaBeans的getter和setter方法进行数据绑定,但也可以通过在字段上添加注解来简化这一过程。例如...
本文将深入探讨如何在Struts2中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个...
在Struts2中使用OGNL表达式主要涉及以下几种符号:“#”、“%”和“$”。 ##### 1. “#”符号的使用 - **访问Struts2上下文**: - `#`可用于访问当前的`ActionContext`,如`#ActionContext.getContext()`。 - ...
根据提供的代码片段,我们可以总结出以下几种处理方式: 1. **设置文件名编码**:通过`setFileName()`方法来处理文件名中的中文字符。 2. **根据浏览器类型处理**:根据用户使用的浏览器类型(如IE或Firefox)采取...
首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts2中用于传递请求上下文信息的核心类。通过`ActionContext.getContext()`可以获得当前线程的ActionContext实例。这个上...
在Struts2中,`session`对象通常被封装成`SessionMap`的形式。获取`SessionMap`对象的方法有: ```java // 方法A Map session = ActionContext.getSession(); // 方法B Map session = (Map) ActionContext....
1. **Action与结果**:在Struts2中,业务逻辑处理主要由Action类负责。Action类执行特定的操作,并通过Result返回不同的视图。Result可以是JSP、FreeMarker模板或者其他类型的视图。 2. **拦截器(Interceptors)**...
Struts2提供了几种机制来简化这个过程: - **直接绑定**:如`hello.action?id=1`会直接为Action中的id属性赋值。 - **对象属性绑定**:若参数较多,且都属于同一对象,则可将所有属性封装在一个对象内,例如`...
下面将详细介绍如何解决Struts2中的中文乱码问题。 #### 一、理解中文乱码的原因 中文乱码主要出现在以下几个方面:页面乱码、Action乱码以及数据库乱码。具体来说: 1. **页面乱码**:指用户在浏览器中看到的...
Struts2中的`ActionServlet`就是对Servlet API的一种扩展,它作为整个框架的调度中心,负责接收请求、调用Action并返回相应的结果。 在Struts2中,Servlet API主要体现在以下几点: 1. **过滤器(Filter)**:...
在Struts2中,每个Action实例都有一个与之关联的ValueStack对象,该对象贯穿整个Action的生命周期。ValueStack不仅包含了Action对象本身,还可能包含其他辅助对象或数据,比如表单数据、验证错误等。 #### 获取...
- "STRUTS2获得session和request - lyyb2001 - BlogJava.mht":这个文件可能是lyyb2001在BlogJava网站上分享的关于如何在Struts2中获取和操作session及request对象的文章,这对于理解和解决会话标识问题很有帮助。...
下面通过几个具体的例子来说明如何在Struts2中使用OGNL: 1. **设置和获取数据**: 在Action中设置值: ```java ActionContext.getContext().getValueStack().set("test", "lovejava"); ``` 在JSP页面中获取...
在Struts2中,自定义标签可以用来扩展JSP页面的功能,使其能够更好地与后台业务逻辑交互。 自定义标签的实现通常分为以下几个步骤: 1. **创建标签库**:定义一个XML文件(如struts-tags.xml),用于声明自定义...