`

struts2访问Web元素的几种方法

阅读更多

一、 方法一:ActionContext方式

一般在Action类的构造方法、或execute()方法中获取。

public class LoginAction1 extends ActionSupport {

 

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

}

}

然后在Jsp页面中获取相关web元素。

<body>

User Login Success!

<br />

<s:property value="#request.r1"/> | <%=request.getAttribute("r1"%> <br />

<s:property value="#session.s1"/> | <%=session.getAttribute("s1"%> <br />

<s:property value="#application.a1"/> | <%=application.getAttribute("a1"%> <br />

<s:property value="#attr.a1"/><br />

<s:property value="#attr.s1"/><br />

<s:property value="#attr.r1"/><br />

<s:debug></s:debug>

<br />

</body>

注:因为requestsessionapplication对象Struts2将在放入到Action Context中,

因此需要使用#key来访问对象们。

后面的是java脚本代码的访问方式。

二、 方式二:Ioc(控制反转)推荐使用

Action类实现RequestAwareSessionAwareApplicationAware接口,然后重写他们的set方法(setRequestsetSessionsetApplication),通过依赖注入、控制反转(原来自己控制,现在由别人来控制值。)

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 LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {

private Map<String, Object> request;

private Map<String, Object> session;

private Map<String, Object> application;

 

//DI dependency injection依赖注入

//IoC inverse of control控制反转

public String execute() {

request.put("r1""r1");

session.put("s1""s1");

application.put("a1""a1");

return SUCCESS

}

@Override

public void setRequest(Map<String, Object> request) {

this.request = request;

}

@Override

public void setSession(Map<String, Object> session) {

this.session = session;

}

@Override

public void setApplication(Map<String, Object> application) {

this.application = application;

}

}

在视图(JSP)页面中获取相关对象,同方式一。

三、 方式三:获取原类型

获取是的HttpServletRequest/HttpSession/ServletContext

public class LoginAction3 extends ActionSupport {

 

private HttpServletRequest request;

private HttpSession session;

private ServletContext application;

public LoginAction3() {

request = ServletActionContext.getRequest();

session = request.getSession();

application = session.getServletContext();

}

public String execute() {

request.setAttribute("r1""r1");

session.setAttribute("s1""s1");

application.setAttribute("a1""a1");

return SUCCESS

}

}

 

四、 方式四:获取原类型-控制反转

首先需要Action实现org.apache.struts2.interceptor.ServletRequestAware接口,然后重写setServletRequest()方法,获取HttpServletRequest对象,再通过HttpServletRequest对象取昨HttpSessionServletContext对象。

 

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

 

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction4 extends ActionSupport implements ServletRequestAware {

private HttpServletRequest request;

private HttpSession session;

private ServletContext application;

public String execute() {

request.setAttribute("r1""r1");

session.setAttribute("s1""s1");

application.setAttribute("a1""a1");

return SUCCESS

}

@Override

public void setServletRequest(HttpServletRequest request) {

this.request = request;

this.session = request.getSession();

this.application = session.getServletContext();

}

}

分享到:
评论

相关推荐

    如何将一个web手工配成struts2

    这里的`&lt;action&gt;`元素定义了一个名为`helloWorld`的动作,当用户访问相应的URL时,Struts2会调用`com.example.HelloWorldAction`类中的方法,并将结果渲染到`/WEB-INF/helloworld.jsp`页面上。 #### 总结 通过以上...

    struts2中的OGNL的源码

    Struts2是一个流行的Java Web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在...

    struts2和freemarker整合

    Struts2和FreeMarker是两种在Java Web开发中广泛应用的技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的开源框架,用于构建动态、数据驱动的Web应用程序,而FreeMarker则是一个模板引擎,它允许...

    Struts2的注册系统

    Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发中,用于构建高效、可扩展的Web应用程序。在“Struts2的注册系统”项目中,我们关注的是如何利用Struts2框架实现一个完整的用户注册功能...

    Struts 2 Core 2.0.6 API

    Struts 2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,由Apache软件基金会维护。它的核心是Action类,用于处理用户的请求,并与业务逻辑层进行交互。Struts 2 Core 2.0.6 API是该框架的一个...

    struts2核心包完整jar包

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、高效且易于维护的Web应用。这个核心包完整jar包包含了Struts2框架运行所必需的所有组件,可以帮助开发者快速搭建基于Struts2的项目环境。 Struts2...

    struts2官方入门案列curd

    Struts2是一个非常流行的Java Web框架,用于构建可维护、结构清晰且易于扩展的企业级应用程序。这个官方入门案例“struts2官方入门案列curd”着重于介绍如何使用Struts2实现CRUD(创建、读取、更新、删除)操作,这...

    struts 2登录系统及其jar包

    Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它简化了构建可维护和可扩展的Web应用的过程。在本示例中,"struts 2登录系统及其jar包" 提供了一个基础的登录模块,通过这个小...

    Struts2_Action

    在Action类中,还可以访问Web元素,比如HttpServletRequest和HttpServletResponse等,利用Struts2提供的API能够很便捷地实现这一功能。 此外,Struts2还提供了动态方法调用的机制,允许你在一个Action类中定义多种...

    struts2 学习过程中的收获

    8. **JSP和Servlet**:虽然Struts2提供了一种更高级的MVC模型,但理解JSP和Servlet的基本原理仍然很重要,因为它们经常作为视图层的一部分。 9. **异常处理**:学习如何配置Struts2的全局异常处理机制,以便在发生...

    Netbeans6_Struts2插件下载与安装

    下载Struts2插件通常有以下几种方式: 1. **通过NetBeans插件库**:打开NetBeans IDE,进入“工具”菜单,选择“插件”。在弹出的插件管理器中,可以通过搜索框查找Struts2相关的插件。然而,由于题目中提到的是...

    Struts2入门教程

    Struts2是一种基于MVC(Model-View-Controller)架构的开源Web应用框架,它由Apache软件基金会维护。Struts2框架的核心设计理念源自WebWork,同时继承并优化了Struts1的部分特性,实现了对Web应用开发的高度抽象和...

    struts2标签库实验报告.docx

    通过实验,学员能够掌握Struts2中几个常用标签(如`&lt;s:radio&gt;`、`&lt;s:select&gt;`、`&lt;s:token&gt;`)的应用,并理解OGNL表达式的基本用法。这些知识点对于初学者来说至关重要,因为它们构成了Struts2应用开发的基础。 ####...

    研磨Struts2

    Struts2的架构设计非常清晰,主要由以下几个部分组成: - **拦截器(Interceptor)**:拦截器用于处理HTTP请求,可以对请求进行预处理或后处理。 - **Action**:处理业务逻辑的核心组件。 - **配置文件(struts.xml...

    精通struts基于MVC的java web设计与开发(代码二).rar

    **Struts框架**是Apache软件基金会的一个开源项目,它提供了一种实现MVC模式的方法。Struts通过控制器Servlet(ActionServlet)来处理HTTP请求,并将请求分发到相应的Action,然后由Action执行业务逻辑并更新Model。...

    struts2登录,以及输入校验的demo

    Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。这个"struts2登录,以及输入校验的demo"是一个基础的实例,它展示了如何在Struts2中实现用户登录功能,并进行输入验证,确保数据的正确...

    struts 2 学习笔记

    7. **访问Web元素**: - 在Action中,可以通过`ActionContext`获取`HttpServletRequest`对象。 - 在JSP中,可以使用Struts2的标签`&lt;s:property&gt;`来访问请求、会话或应用范围内的属性。 8. **结果类型(Result_...

    struts2 标签使用

    Struts2 是一款基于 Java 的企业级 Web 应用框架,它利用了 MVC(Model-View-Controller)架构模式来帮助开发者构建可扩展、易于维护的 Web 应用程序。在 Struts2 中,`&lt;s:if&gt;` 标签是一种常用的条件判断标签,用于...

    Struts2整合SiteMesh

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,极大地简化了业务逻辑处理和页面展示的分离。SiteMesh则是一个网页布局和装饰框架,它允许开发者定义全局的页面头部、底部和侧边栏,...

    struts2.3.32 api

    这个API文档以CHM(Microsoft Compiled HTML Help)格式提供,是一种方便开发者查阅和理解Struts 2.3.32版本功能和类库的方法指南。 Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序...

Global site tag (gtag.js) - Google Analytics