原文地址:http://www.itzhai.com/visit-the-web-element-using-struts2-ioc-assignment-requestaware-sessionaware-applicationaware.html
1、通过RequestAware,SessionAware,ApplicationAware获取:
在Struts2中不能直接访问 Request,Session,Application元素,但是可以使用Struts2中提供的 RequestAware,SessionAware,ApplicationAware。在这里要分别为三个对象提供setter方法,以便让 struts自动执行,使用IoC(控制反转)进行赋值。
下面的LoginAction使用ModelDriven获取User,放入Session中,并在request和application中分别放入“test1”和“test2”。
LoginAction:
public class LoginAction extends ActionSupport implements ModelDriven<User>,RequestAware,SessionAware, ApplicationAware { private Map<String, Object> request; private Map<String, Object> session; private Map<String, Object> application; private User user = new User(); public void setSession(Map<String, Object> session) { this.session = session; } public void setRequest(Map<String, Object> request) { this.request = request; } public void setApplication(Map<String, Object> application) { this.application = application; } public void setUserService(UserServiceImpl userService) { this.userService = userService; } public String execute() { session.put("user", userRe); request.put("req", "test1"); application.put("app", "test2"); return "result"; } }
在页面中读取保存的数据可以用HttpServletRequest,HttpSession,ServletContext等直接访问,也可以使用Struts标签通过Stack Context访问。
在页面中可以按照以下方式读取保存的数据:
<img class="user_photo" src="<s:property value="#session.user.userPhoto" />" /> <!-- userPhoto为User的一个属性 --> <!--使用标签OGNL表达式的方式访问Stack Context中的值,需要加“#” --> <s:property value="#request.req"/> <!--使用HttpServletRequest方式访问 --> <%=request.getAttribute("req") %> <br /> <s:property value="#application.app"/> <%=application.getAttribute("app") %> <br /> <!--使用OGNL表达式访问Stack Context中的attr获取具体的数据--> <s:property value="#attr.user.userPhoto"/><br /> <s:property value="#attr.req"/><br /> <s:property value="#attr.app"/><br />
2、通过ActionContext获取Map类型的元素:
private Map request; private Map session; private Map application; //可以在构造方法中取值 public LoginAction1() { request = (Map)ActionContext.getContext().get("request"); session = ActionContext.getContext().getSession(); application = ActionContext.getContext().getApplication(); } public String execute() { request.put("r1", "r1"); session.put("s1", "s1"); application.put("a1", "a1"); return SUCCESS; }
3、通过ServletActionContext获取原始的web元素类型:
private HttpServletRequest request; private HttpSession session; private ServletContext application; public LoginAction3() { request = ServletActionContext.getRequest(); session = request.getSession(); application = session.getServletContext(); }
相关推荐
本篇文章将详细介绍Struts2中四种访问web元素的方法。 1. **Action上下文(ActionContext)** ActionContext是Struts2的核心组件之一,它封装了请求、响应以及session等信息。我们可以通过ActionContext获取到...
总结起来,“Struts2_访问web元素_accessWebElements_s”这个主题涵盖了Struts2框架中如何在Action类和视图层之间传递和处理web元素数据的方法。理解这些机制对于有效开发Struts2应用至关重要。在实际项目中,开发者...
在“struts2访问Web元素”这个主题中,我们主要关注的是如何通过Struts2框架来操作和控制Web页面上的各种元素。这篇博文可能详细介绍了如何在Struts2中与HTML表单、按钮、文本框等交互,以及如何处理用户提交的数据...
在"Struts2 访问web元素"这个主题中,我们主要探讨的是如何在Struts2框架中与HTML表单、按钮、文本框等web元素进行交互。这涉及到Action类、Result类型以及Struts2提供的强大数据绑定机制。 1. **Action类**:在...
在"Struts2访问Web元素"这个主题中,我们将深入探讨如何在Struts2框架中与网页元素进行交互。 首先,我们需要了解Struts2的核心组件——Action类。Action类是业务逻辑的载体,负责处理用户请求,并返回相应的结果。...
在使用 Struts2 标签前,需要在 JSP 页面引入标签库,并在 web.xml 中声明要使用的标签。 property 标签 property 标签用于输出指定的值,例如输出用户的名称、年龄等信息。property 标签可以访问某一个包的类的...
9. **Struts2访问Web元素** Struts2可以通过OGNL(Object-Graph Navigation Language)轻松地访问和操作Web元素,如请求参数、session、application范围内的对象等。 10. **Stack Context** Stack Context是...
在Spring3中,我们可以配置Bean定义,管理对象生命周期,并将业务逻辑注入到控制器中。同时,Spring还提供了事务管理,使得数据库操作更加安全。 其次,Struts2作为表现层框架,负责接收用户请求,调度控制流,并将...
3. **集合操作**:支持对集合进行操作,如`list[0]`访问列表的第一个元素,`map["key"]`访问映射中的值。 4. **运算符支持**:包括算术运算、比较运算、逻辑运算等。 5. **上下文变量**:OGNL表达式可以在当前上...
Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。这个"留言板留言板struts2"项目,显然是一个基于Struts2实现的简单留言板系统,旨在展示Struts2的...
- **对指定action方法校验**: 在Struts2中,可以通过XML配置文件定义特定Action类或方法的数据校验规则,以确保用户输入的有效性。 - **对action的所有方法进行校验**: 这种配置允许全局应用校验规则,适用于...
在Struts2框架中,`#`符号是一种非常重要的语法元素,主要用于访问上下文中的变量。本文将详细介绍`#`符号的使用方法及其应用场景,帮助读者更好地理解和掌握Struts2框架的相关知识。 #### 一、Struts2简介 Struts...
- 在web.xml中配置过滤器(Filter),通常使用`FilterDispatcher`作为入口点,它是Struts2的核心组件之一。 - 这个过滤器会捕获所有进入Web应用的HTTP请求,并将它们传递给Struts2框架处理。 - 配置过程中需要注意...
- **适用范围**:Struts2广泛应用于企业级Java Web项目的开发中,特别是那些需要处理大量用户交互和数据展示的应用。 #### 二、Struts2入门案例 - **Hello Struts2**:通过创建一个简单的“Hello World”示例,...
5. **配置web.xml**:在web.xml中引入Struts2的过滤器,配置过滤器的映射,并指定Struts2的配置文件位置。 6. **添加Struts2库**:将下载的Struts2库(包括struts2-core等依赖库)添加到项目的类路径中。 7. **...
这里的`<action>`元素定义了一个名为`helloWorld`的动作,当用户访问相应的URL时,Struts2会调用`com.example.HelloWorldAction`类中的方法,并将结果渲染到`/WEB-INF/helloworld.jsp`页面上。 #### 总结 通过以上...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。这个“struts2全部的jar包”压缩文件包含了运行Struts2应用程序所需的所有核心库和依赖组件。这里我们将深入探讨Struts...
在探讨Struts2.5中的`web.xml`配置时,我们首先需要理解`web.xml`在Java Web应用中的角色以及它如何与Struts框架交互。`web.xml`是Java Web应用的核心配置文件之一,用于定义应用程序级别的配置信息,如过滤器、监听...
在Struts2中,`web.xml`是应用的部署描述符,它定义了初始化参数、过滤器、监听器和Servlet等关键元素。以下是你需要关注的部分: 1. **StrutsPrepareAndExecuteFilter** - 配置Struts2的过滤器,负责拦截所有HTTP...