1. 取得Map类型的request,session,application
struts.xml跟普通的action的配置一样
//GetMapRequestSessionApplicationAction.java
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class GetMapRequestSessionApplicationAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
private Map<String,Object> request;
private Map<String,Object> session;
private Map<String,Object> application;
public String execute(){
request.put("request1", "request values1");
session.put("session1", "sesssion values1");
application.put("application1", "application values1");
return SUCCESS;
}
//IoC DI 由struts2给我们把request,session,application注入进来
public void setSession(Map<String, Object> session) {
this.session = session;
}
public void setRequest(Map<String, Object> reqeust) {
this.request = reqeust;
}
public void setApplication(Map<String, Object> application) {
this.application = application;
}
}
在要用到request,session,application里的东西时,可以在要用到它们的jsp中用下面方式拿到
(value stack可以直接拿到,context stack须在前面加#,如下面方式)
//xxx.jsp
<body>
<s:property value="#request.request1"/> <br>
<s:property value="#session.session1"/> <br>
<s:property value="#application.application1"/> <br>
<s:debug></s:debug><br>
</body>
2. 模块包含
在struts.xml中加入下面语句即可:
<include file="xxx.xml" />
xxx.xml是另一个模块的配置
3. <default-action-ref name="index" />
在struts.xml中配置了<default-action-ref name="index" /> 后,当访问该包下的某个Action时,如果没找到匹配的,则默认跳到index
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<action name="index">
<result>/default.jsp</result>
</action>
</package>
</struts>
分享到:
相关推荐
### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...
默认情况下,Struts2已经配置了一些拦截器,例如`servletConfig`拦截器,它可以提供对servlet API的访问,包括request、response、session等。 在Action中,可以直接调用`ServletActionContext.getRequest()`、`...
在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...
在"struts2-web"这个压缩包文件中,可能包含了一个或多个示例项目,演示了如何在Struts2的Action类中实现对application、session和request域的访问。开发者可以运行这些示例,通过观察控制台输出或页面显示,了解...
该类可以模拟获取 request、session 和 application 的 Map 对象。常用的方法包括: * static ActionContext getContext() : 静态方法,获取 ActionContext 实例 * Object get(Object key) : 类似于 request....
ActionContext为开发者提供了操作不同范围Map的便利接口,包括Session、Request、Application等。通过ActionContext,开发者可以轻松地获取和设置这些范围内的数据,例如: ```java ActionContext.getContext()....
在这种方式中,开发者首先在Action类中定义`request`、`session`和`application`为`Map`类型。然后在构造器或其他适当的地方,通过`ActionContext`获取这些对象的引用。`ActionContext`是Struts2框架提供的一个上...
此外,要访问Web层的`request`、`session`和`application`范围内的对象,Action可以实现`RequestAware`、`SessionAware`和`ApplicationAware`接口。定义相应的`Map`属性,如`private Map, Object> request;`,并在...
在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object> ...
- 通过ActionContext获取request、session和application作用域的对象。 - 使用ServletActionContext获取原始Servlet API。 - 通过适配器将Servlet API转换为Map,方便使用。 这些知识点是Java程序员在面试中针对...
- **接口**:只能包含常量和抽象方法(Java 8 开始支持默认方法和静态方法);不能包含构造函数或具体实现细节;实现接口的类必须提供接口中所有抽象方法的具体实现,除非它本身也是抽象类。 #### 4. Servlet实例在...
- **模块化**:提供多种模块,如Web、Data Access等。 ##### 事务概述 - **ACID特性**:原子性、一致性、隔离性、持久性。 - **传播行为**:PROPAGATION_REQUIRED等。 - **隔离级别**:READ_UNCOMMITTED、READ_...
在这个“Struts2五种数据封装Demo”中,我们将深入探讨Struts2的数据封装机制,以及如何通过配置文件来操作Servlet的三大核心对象——Request、Session和Application。同时,我们还将了解如何从表单中获取数据并进行...
8. **访问Web元素**:通过实现`SessionAware`接口,Struts2能够注入HttpSession到Action中的Map类型变量,从而方便访问Session数据。 9. **Value Stack**:Value Stack中的值存储在request作用域中,Action中的变量...
- **ValueStack的内容**:除了包含当前Action对象外,还包括其他常用的Web域对象(如request, session, application等)。 #### ValueStack内部结构 ValueStack的内部结构主要包括两部分:一个`List`和一个`Map`。 ...
- 访问`application`作用域内的`name`属性:`<s:property value="#application.name" />` 通过以上示例可以看出,OGNL表达式的灵活性非常强,能够满足各种复杂的场景需求。在实际开发中,合理利用OGNL可以极大提高...
它不仅包含了`ValueStack`,还包含了更多的上下文信息,比如当前请求(`request`)、会话(`session`)、应用范围(`application`)等。因此,通过`ActionContext`不仅可以访问到`ValueStack`中的数据,还可以方便地获取...
其内部包含了一个`CompoundRoot`对象,用于存放当前的Action对象,以及一个`Map, Object>`对象,用于存储各种上下文信息,如request、session、application、action、parameters和attr等。 2. **ValueStack对象获取...