在struts2中有两种方式可以得到这些对象
1、非IoC方式
要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。有了这个对象我们想获得其他几个对象就好办了
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
细心的朋友可以发现这里的session是个map对象在Struts2中底层的session都被封装成了Map类型我们可以直接操作这个map 进行对session的写入和读取操作而不用去直接操作HttpSession对象
另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象。
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
如果你只是想访问session的属性(Attribute),你也可以通过ActionContext.getContext().getSession()获取或添加session范围(Scoped)的对象。
2、IoC方式(这种方式在tapestry中也是这样实现的)
要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。具体实现
publicclass IoCServlet extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {
private String message;
private Map att;
private HttpServletRequest request;
private HttpServletResponse response;
public String getMessage() {
return message;
}
publicvoid setSession(Map att) {
this.att = att;
}
publicvoid setServletRequest(HttpServletRequest request) {
this.request = request;
}
publicvoid setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public String execute() {
att.put("msg", "Hello World from Session!");
HttpSession session = request.getSession();
StringBuffer sb =new StringBuffer("Message from request: ");
sb.append(request.getParameter("msg"));
sb.append("
Response Buffer Size: ");
sb.append(response.getBufferSize());
sb.append("
Session ID: ");
sb.append(session.getId());
message = sb.toString();
return SUCCESS;
}
在struts.xml的action中配置拦截器
<interceptor-ref name="servletConfig"></interceptor-ref>
分享到:
相关推荐
Struts2.0是Java Web开发中非常流行的一个MVC框架,它基于Model-View-Controller(模型-视图-控制器)设计模式,为开发者提供了强大的功能和灵活的架构。这个压缩包包含了Struts2.0框架运行所需的所有jar包,使得...
在视图层面,Struts2.0可以配合多种视图技术,如JSP、FreeMarker、Velocity等,以XML或基于注解的方式配置视图解析规则。其中,Struts2标签库极大地简化了JSP页面的编写,提供了如、等标签,便于显示和处理数据。 ...
这个压缩包可能包含了一个从零开始搭建的Struts2.0项目,包括Action类、配置文件、JSP视图、以及可能的测试用例。通过学习和分析这些文件,你可以深入理解Struts2.0的架构和工作流程,为后续的Java Web开发打下坚实...
4. **OGNL(Object-Graph Navigation Language)**:Struts 2.0使用OGNL作为默认的表达式语言,用于在Action对象和JSP页面之间传递数据,以及在Action中执行动态表达式。 5. **结果类型**:不同的结果类型用于决定...
### Struts2.0框架技术详解 #### 一、MVC思想 **1.1 Model I 模式和 Model II 模式** ##### 1.1.1 Model I 模式 在Model I模式下,整个Web应用几乎全部由JSP页面组成。JSP页面不仅接收处理客户端请求,还直接...
Struts2.0标签库是基于OGNL(Object-Graph Navigation Language)表达式的,它提供了丰富的标签,如`s:property`、`s:textfield`、`s:form`等,这些标签用于在JSP页面中动态地展示和操作数据,与Action类中的属性进行...
在"Spring+Struts2.0实例代码"中,你可能会看到以下关键部分: 1. **配置文件**:包括 Spring 的 `beans.xml`,用于配置 Bean 对象和依赖注入;以及 Struts 2.0 的 `struts.xml`,用于配置 Action 映射和拦截器链。...
3. 在Struts2.0的Action中,调用上述Java类的方法,获取当前页的数据。 4. 在JSP页面上,使用Struts2的标签或者DisplayTag展示数据,并使用DWR生成的JavaScript对象来处理分页事件,比如点击分页按钮。 5. 当用户...
Struts2.0 API 是一个重要的开发者资源,它包含了Struts2框架的所有核心类和接口的详细信息。这个API文档是开发基于Struts2的应用程序时不可或缺的参考工具,尤其对于初学者而言,通过查阅API可以更好地理解和使用...
Struts2.0和Spring2.0是两个非常流行的开源Java框架,它们分别在MVC(Model-View-Controller)架构和依赖注入(Dependency Injection,DI)方面有着出色的表现。Struts2.0是一个用于构建企业级Web应用程序的强大的...
Struts2.0基于Model-View-Controller模式,它简化了Java Servlet和JSP的开发,通过Action类处理业务逻辑,Interceptor拦截器处理请求前后的操作,以及Result定义视图的跳转。这个框架提供了强大的国际化支持、异常...
Struts2.0提供了一种更加灵活的控制器层,支持多种视图技术,如JSP、FreeMarker等,并引入了强大的拦截器(Interceptor)机制,增强了异常处理和国际化等功能。 二、Struts2.0的标签库 Struts2.0的标签库是其强大之...
Struts2.0和FreeMarker是Java Web开发中常用的两个技术框架,它们分别负责MVC模式中的控制器和视图部分。Struts2.0作为一款强大的MVC框架,提供了丰富的功能来简化Web应用的开发,而FreeMarker则是一款模板引擎,...
3. **数据标签**:这些标签用于从模型中获取数据并显示,如`s:property`可以用来显示对象属性值,`s:debug`用于调试,显示所有动作上下文的信息。 4. **表单标签**:Struts2提供了一系列的表单相关标签,如`s:form`...
Struts2.0是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个框架的主要目的是为了简化开发过程,并提供一种更有效的方式来控制应用程序的行为。...
2. **使用国际化**: 在Action类或者JSP页面中,通过`ActionMessage`和`ResourceBundle`对象来获取和显示本地化消息。在JSP中,可以使用`<bean:message>`标签: ```jsp ``` **Struts2.0的国际化** Struts2.0在...
Struts2.0是一个强大的基于MVC(Model-View-Controller)设计模式的Java开源框架,被誉为MVC2,因为它相较于传统的Struts1框架在设计理念上有显著提升。该框架采用"pull"方式来处理请求,这使得它更加灵活且易于扩展...