- 浏览: 1504485 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
我看安子写的教程 里面拿context用的是
而且说
可是我看WW给的例子里 全是第2种取法 而且根本就没有上面那个ActionContextThreadLocal类
我用的版本是2.2.4
另外 我
- ActionContext context = ActionContext.getContext();
- Map map = context.getParameters();
- String user = (String) map.get("username");
ActionContext context = ActionContext.getContext(); Map map = context.getParameters(); String user = (String) map.get("username");
居然报ClassCast 我看了一下 拿到的 username是
为什么 前面会有个 [L 的 ????
==============
教程里面提到 ActionContextThreadLocal 是为了讲解 ActionContext 的工作方式, 这个类是 ActionContext 的内部私有类, 你当然无法使用
- //~ Inner Classes //////////////////////////////////////////////////////////
- private static class ActionContextThreadLocal extends ThreadLocal {
- protected Object initialValue() {
- OgnlValueStack vs = new OgnlValueStack();
- return new ActionContext(vs.getContext());
- }
- }
//~ Inner Classes ////////////////////////////////////////////////////////// private static class ActionContextThreadLocal extends ThreadLocal { protected Object initialValue() { OgnlValueStack vs = new OgnlValueStack(); return new ActionContext(vs.getContext()); } }
不能在构造函数里调用 ActionContext.getContext() 的原因是此时 Action 实例还未创建完毕, 所有的 Interceptor 都没有执行, 所以会取到 null 值
===========
不是已经回复过了嘛?WebWork里面提供了SessionAware,ServletRequestAware,ParameterAware,无数Aware接口给你实现。不就可以操作这些对象了?
初学WebWork,请忘记Session,Request等对象,像ReadOnly老大所说。
===========
因为从HttpServletRequest.getParameterMap()方法取出来的就是数组,Servlet规范不是这样的?
拦截器里直接用ActionContext把request拿出来,再取parameter不是很方便么,不知道还有什么方法可以把request注入Interceptor?
=============
教程里面不是说只是不能在构造函数里面是用ActionContext.getContext()这个静态方法。
在Command的execute方法里面就通过ActionContext.getContext().getSession获取。request一般都通过WW自动set到你对应的setter里面。
Aware方法我觉得不用为好,没什么太大意义。
http://www.iteye.com/topic/24410?page=3
发表评论
-
Struts2对Action名称的搜索顺序
2011-08-03 22:47 1384新建一个struts2项目,命名为struts2。按照如下XM ... -
探究Struts2运行机制:StrutsPrepareAndExecuteFilter 源码剖析
2011-08-03 19:09 1776一、概述 Struts2的核心是一个Filter ... -
struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别
2011-08-03 18:02 1347FilterDispatcher是struts2.0.x到2. ... -
框架学习之Struts2 第二节 Action的详解
2011-08-03 17:50 1381http://www.cnblogs.com/ying ... -
Struts2的模板和主题theme及自定义theme
2011-08-03 16:59 8272Struts2提供了三种主题,ajax, simple, cs ... -
struts2 action基类 ActionSupport
2011-08-03 16:14 2642Struts 2的Action无须实现 ... -
Struts2访问Web元素(RequestAware,SessionAware,ApplicationAware)
2011-08-03 14:50 9710在Struts2中,动作类虽然继承ActionSupport类 ... -
Struts2自定义拦截器实例—Session超时的处理
2011-08-03 10:49 3404版本:struts2.1.6 实例功能:当用户登陆后,ses ... -
Struts2数据传输的背后机制:ValueStack(值栈)
2011-07-11 15:34 1347今天看到一篇讲struts2的valuestack的很好文章, ... -
struts2文件上传的采用的三种方式解析
2011-07-06 18:29 1377文件上传几乎是每个项目实现的一个必须的模块。 上传就是将 ... -
Struts2 <s:token/>标签
2011-03-01 09:24 16161、使用Struts2的表单标签,其中需要增加token标签。 ... -
struts2的Action配置通配符
2011-02-28 17:05 22271.注意,书写代码的时候一定要注意命名的规则,不要胡乱的命名, ... -
struts2中form的theme属性
2011-02-28 16:00 2386struts2中theme属性包括xhtml,html,sim ... -
Struts2的类型转换器
2011-02-24 17:27 1401一、概述 在B/S应用中,将字符串请求参数转换为相应的 ... -
Struts2标签--s:url
2011-02-23 17:09 1886<!--action就是struts2 acti ... -
hgdfghgdfh
2011-01-06 17:57 0datealocaltonight.com -
Struts2 默认的模板配置 theme
2010-10-29 10:26 1480在使用struts2标签时,默认情况下生成的html代码会添加 ... -
Struts2自定义Theme
2010-10-29 10:21 16001. Struts2 Theme与WebWork Theme ... -
Struts2 的四种theme类型
2010-10-29 10:13 1681struts2 中有四种 theme 类型: simple ... -
struts2数据校验流程图
2010-10-29 09:40 2154通过我在blog中写到关于利用Struts 2完成手动校验这篇 ...
相关推荐
B.ActionContext ct= ActionContext.getContext() HttpServletRequest request= (HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST ); 获得session对象: 在Struts2中底层的session都被封装成了...
ActionContext通常通过`ActionContext context = ActionContext.getContext();`来获取,这是因为ActionContext是基于ThreadLocal实现的。ThreadLocal是一种线程局部变量,每个线程都有自己的副本,避免了多线程环境...
此外,Struts2还提供了Action上下文(ActionContext)作为便捷访问这些域的途径,通过`ActionContext.getContext()`获取当前请求的上下文对象,再从中获取所需的域对象。 在"struts2-web"这个压缩包文件中,可能...
例如,你可以使用`ActionContext.getContext().get("key")`来获取请求或会话中的值,而`ActionContext.getContext().getValueStack()`则可以获取ValueStack,它是Struts2中处理模型驱动的一个关键部分。 2. **...
HttpSession session = request.getSession(); ``` 这是最常见的获取Session对象的方式之一,直接调用`request`对象的`getSession()`方法即可。 2. **通过`ActionContext`获取**: ```java Map session = ...
由于ActionContext的实例在Action执行时才创建,因此不建议在Action的构造函数中使用`ActionContext.getContext()`,因为此时ActionContext可能尚未初始化。 总的来说,在Struts2中,Action类可以通过...
ValueStack是Struts 2中的核心组件之一,它本质上是Request的一个属性,可以通过`request.getAttribute("struts.valueStack")`获取到。ValueStack的生命周期与Request相同,这意味着它在请求开始时被创建,并在请求...
HttpSession httpSession = request.getSession(); ``` #### 五、总结 Struts2提供了一套完整的机制来管理和访问不同作用域内的数据。通过实现特定的接口或使用`ActionContext`和`ServletActionContext`类,开发者...
String paramValue = request.getParameter("paramName"); ``` 而response对象则允许我们设置HTTP响应的状态码、头信息,以及输出内容: ```java response.setStatus(HttpServletResponse.SC_OK); response.set...
开发者可以直接在Action中使用`ActionContext.getContext().getValueStack()`获取ValueStack,或者通过`ActionContext.getContext().get("request")`或`ActionContext.getContext().get("session")`获取请求和...
ActionContext.getContext().getValueStack().push("myKey", "myValue"); return SUCCESS; } } ``` 然后在JSP页面上通过`OGNL`表达式获取: ```jsp ${myKey} ``` 2. 响应(Response)范围: 响应是服务器向...
Object value = ActionContext.getContext().getSession().get("key"); // 设置session ActionContext.getContext().getSession().put("key", value); // 访问request value = ActionContext.getContext().get...
2. **ServletActionContext类**:这是ActionContext的一个扩展,提供了更方便的访问Servlet相关对象的方法,如`ServletActionContext.getRequest()`和`ServletActionContext.getResponse()`分别用于获取...
- **获取对象**: `Object obj = request.getAttribute("objName");` - **设置对象**: `request.setAttribute("objName", objName);` #### 2.2 应用程序范围(Application) 应用程序范围内的对象在整个Web应用程序...
ActionContext context = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response = ...
package com.request.test; import com.opensymphony.xwork2.ActionContext; import java.util.Map; public class ObjectAction { public String execute() { // 获取ActionContext ActionContext ...
ActionContext context = ActionContext.getContext(); ``` ActionContext中的`getParameters()`方法可以用来获取请求参数,如示例代码所示,获取请求参数"username"的值: ```java Map, Object> params = context...
ActionContext context = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest) context.get(StrutsStatics.HTTP_REQUEST); ``` 这种方法简单直接,适用于任何Action方法。 2. **...