`

004 - 取得Map类型的request,session,application - 模块包含 - 默认Action

阅读更多

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 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...

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

    默认情况下,Struts2已经配置了一些拦截器,例如`servletConfig`拦截器,它可以提供对servlet API的访问,包括request、response、session等。 在Action中,可以直接调用`ServletActionContext.getRequest()`、`...

    Struts2学习笔记(三) Struts2中访问request,session,和application对象

    在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...

    struts2访问application、session以及request等web资源的示例代码

    在"struts2-web"这个压缩包文件中,可能包含了一个或多个示例项目,演示了如何在Struts2的Action类中实现对application、session和request域的访问。开发者可以运行这些示例,通过观察控制台输出或页面显示,了解...

    struts2之Action访问Servlet API

    该类可以模拟获取 request、session 和 application 的 Map 对象。常用的方法包括: * static ActionContext getContext() : 静态方法,获取 ActionContext 实例 * Object get(Object key) : 类似于 request....

    java详解教程-structs 2

    ActionContext为开发者提供了操作不同范围Map的便利接口,包括Session、Request、Application等。通过ActionContext,开发者可以轻松地获取和设置这些范围内的数据,例如: ```java ActionContext.getContext()....

    访问Web页面元素

    在这种方式中,开发者首先在Action类中定义`request`、`session`和`application`为`Map`类型。然后在构造器或其他适当的地方,通过`ActionContext`获取这些对象的引用。`ActionContext`是Struts2框架提供的一个上...

    strut2学习笔记

    此外,要访问Web层的`request`、`session`和`application`范围内的对象,Action可以实现`RequestAware`、`SessionAware`和`ApplicationAware`接口。定义相应的`Map`属性,如`private Map, Object&gt; request;`,并在...

    Struts2通过使用ActionContext类获取request和response对象

    在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object&gt; ...

    java程序员2016最新面试题ssm面向对象.pdf,这是一份不错的文件

    - 通过ActionContext获取request、session和application作用域的对象。 - 使用ServletActionContext获取原始Servlet API。 - 通过适配器将Servlet API转换为Map,方便使用。 这些知识点是Java程序员在面试中针对...

    java面试问题汇总(非常全面)

    - **接口**:只能包含常量和抽象方法(Java 8 开始支持默认方法和静态方法);不能包含构造函数或具体实现细节;实现接口的类必须提供接口中所有抽象方法的具体实现,除非它本身也是抽象类。 #### 4. Servlet实例在...

    java面试知识

    - **模块化**:提供多种模块,如Web、Data Access等。 ##### 事务概述 - **ACID特性**:原子性、一致性、隔离性、持久性。 - **传播行为**:PROPAGATION_REQUIRED等。 - **隔离级别**:READ_UNCOMMITTED、READ_...

    Struts2五种数据封装Demo

    在这个“Struts2五种数据封装Demo”中,我们将深入探讨Struts2的数据封装机制,以及如何通过配置文件来操作Servlet的三大核心对象——Request、Session和Application。同时,我们还将了解如何从表单中获取数据并进行...

    Strutst2框架的总结

    8. **访问Web元素**:通过实现`SessionAware`接口,Struts2能够注入HttpSession到Action中的Map类型变量,从而方便访问Session数据。 9. **Value Stack**:Value Stack中的值存储在request作用域中,Action中的变量...

    传智168期JavaEE struts2杜宏 day32~day33笔记

    - **ValueStack的内容**:除了包含当前Action对象外,还包括其他常用的Web域对象(如request, session, application等)。 #### ValueStack内部结构 ValueStack的内部结构主要包括两部分:一个`List`和一个`Map`。 ...

    OGNL表达归纳

    - 访问`application`作用域内的`name`属性:`&lt;s:property value="#application.name" /&gt;` 通过以上示例可以看出,OGNL表达式的灵活性非常强,能够满足各种复杂的场景需求。在实际开发中,合理利用OGNL可以极大提高...

    struts学习笔记(3)

    它不仅包含了`ValueStack`,还包含了更多的上下文信息,比如当前请求(`request`)、会话(`session`)、应用范围(`application`)等。因此,通过`ActionContext`不仅可以访问到`ValueStack`中的数据,还可以方便地获取...

    stucts2描述

    其内部包含了一个`CompoundRoot`对象,用于存放当前的Action对象,以及一个`Map, Object&gt;`对象,用于存储各种上下文信息,如request、session、application、action、parameters和attr等。 2. **ValueStack对象获取...

Global site tag (gtag.js) - Google Analytics