一、 方法一: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>
注:因为request、session、application对象Struts2将在放入到Action Context中,
因此需要使用#key来访问对象们。
后面的是java脚本代码的访问方式。
二、 方式二:Ioc(控制反转)—推荐使用
让Action类实现RequestAware、SessionAware、ApplicationAware接口,然后重写他们的set方法(setRequest、setSession、setApplication),通过依赖注入、控制反转(原来自己控制,现在由别人来控制值。)
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对象取昨HttpSession和ServletContext对象。
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();
}
}
相关推荐
这里的`<action>`元素定义了一个名为`helloWorld`的动作,当用户访问相应的URL时,Struts2会调用`com.example.HelloWorldAction`类中的方法,并将结果渲染到`/WEB-INF/helloworld.jsp`页面上。 #### 总结 通过以上...
Struts2是一个流行的Java Web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在...
Struts2和FreeMarker是两种在Java Web开发中广泛应用的技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的开源框架,用于构建动态、数据驱动的Web应用程序,而FreeMarker则是一个模板引擎,它允许...
Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发中,用于构建高效、可扩展的Web应用程序。在“Struts2的注册系统”项目中,我们关注的是如何利用Struts2框架实现一个完整的用户注册功能...
Struts 2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,由Apache软件基金会维护。它的核心是Action类,用于处理用户的请求,并与业务逻辑层进行交互。Struts 2 Core 2.0.6 API是该框架的一个...
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、高效且易于维护的Web应用。这个核心包完整jar包包含了Struts2框架运行所必需的所有组件,可以帮助开发者快速搭建基于Struts2的项目环境。 Struts2...
Struts2是一个非常流行的Java Web框架,用于构建可维护、结构清晰且易于扩展的企业级应用程序。这个官方入门案例“struts2官方入门案列curd”着重于介绍如何使用Struts2实现CRUD(创建、读取、更新、删除)操作,这...
Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它简化了构建可维护和可扩展的Web应用的过程。在本示例中,"struts 2登录系统及其jar包" 提供了一个基础的登录模块,通过这个小...
在Action类中,还可以访问Web元素,比如HttpServletRequest和HttpServletResponse等,利用Struts2提供的API能够很便捷地实现这一功能。 此外,Struts2还提供了动态方法调用的机制,允许你在一个Action类中定义多种...
8. **JSP和Servlet**:虽然Struts2提供了一种更高级的MVC模型,但理解JSP和Servlet的基本原理仍然很重要,因为它们经常作为视图层的一部分。 9. **异常处理**:学习如何配置Struts2的全局异常处理机制,以便在发生...
下载Struts2插件通常有以下几种方式: 1. **通过NetBeans插件库**:打开NetBeans IDE,进入“工具”菜单,选择“插件”。在弹出的插件管理器中,可以通过搜索框查找Struts2相关的插件。然而,由于题目中提到的是...
Struts2是一种基于MVC(Model-View-Controller)架构的开源Web应用框架,它由Apache软件基金会维护。Struts2框架的核心设计理念源自WebWork,同时继承并优化了Struts1的部分特性,实现了对Web应用开发的高度抽象和...
通过实验,学员能够掌握Struts2中几个常用标签(如`<s:radio>`、`<s:select>`、`<s:token>`)的应用,并理解OGNL表达式的基本用法。这些知识点对于初学者来说至关重要,因为它们构成了Struts2应用开发的基础。 ####...
Struts2的架构设计非常清晰,主要由以下几个部分组成: - **拦截器(Interceptor)**:拦截器用于处理HTTP请求,可以对请求进行预处理或后处理。 - **Action**:处理业务逻辑的核心组件。 - **配置文件(struts.xml...
**Struts框架**是Apache软件基金会的一个开源项目,它提供了一种实现MVC模式的方法。Struts通过控制器Servlet(ActionServlet)来处理HTTP请求,并将请求分发到相应的Action,然后由Action执行业务逻辑并更新Model。...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。这个"struts2登录,以及输入校验的demo"是一个基础的实例,它展示了如何在Struts2中实现用户登录功能,并进行输入验证,确保数据的正确...
7. **访问Web元素**: - 在Action中,可以通过`ActionContext`获取`HttpServletRequest`对象。 - 在JSP中,可以使用Struts2的标签`<s:property>`来访问请求、会话或应用范围内的属性。 8. **结果类型(Result_...
Struts2 是一款基于 Java 的企业级 Web 应用框架,它利用了 MVC(Model-View-Controller)架构模式来帮助开发者构建可扩展、易于维护的 Web 应用程序。在 Struts2 中,`<s:if>` 标签是一种常用的条件判断标签,用于...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,极大地简化了业务逻辑处理和页面展示的分离。SiteMesh则是一个网页布局和装饰框架,它允许开发者定义全局的页面头部、底部和侧边栏,...
这个API文档以CHM(Microsoft Compiled HTML Help)格式提供,是一种方便开发者查阅和理解Struts 2.3.32版本功能和类库的方法指南。 Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序...