struts2中的valueStack和ActionContext

jackaudrey 2010-05-14 11:28:42
I.最近在学习struts2时看到ActionContext是线程安全的,关于这个线程有两个问题
1>:如何创建一个安全的线程
2>:怎么样判断ActionServlet是线程安全的
II.ValueStack里面放的是什么,它是如何产生的,作用范围是什么
...全文
123 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
redlotus_lyn 2010-05-14
  • 打赏
  • 举报
回复
就是ActionContext
jackaudrey 2010-05-14
  • 打赏
  • 举报
回复
我用<s:debug/>打印出了连个stack出来,分别是:Value Stack Contents和Stack Context,那么这个事stack context又是什么东西啊
redlotus_lyn 2010-05-14
  • 打赏
  • 举报
回复
I.

struts2每次请求都会创建ActionContext。是struts2自己创建的。

II.

ValueStack是值栈,里面存放属性。在画面上使用<s:debug />标签能看到具体内容。

ActionContext包括:

1>.application
2>.session
3>.valueStack
4>.request
5>.parameters
6>.attr
jackaudrey 2010-05-14
  • 打赏
  • 举报
回复
刚用了一个struts2的标签:<s:set var="admin" value="'username'">它的范围是request和actionContext,结果用两种方式来输出
从request范围来输出:<s:property value="#request.admin"/>
从actionContext范围来输出:<s:property value="#admin">
结果两者输出都是:username
现在的问题是这个变量admin到底是在什么范围之内,我用<s:debug/>看到的是在actonContext中没有admin这个变量,当然request里面有
admin这个变量到底是怎么回事?





jackaudrey 2010-05-14
  • 打赏
  • 举报
回复
哥们,受益匪浅
redlotus_lyn 2010-05-14
  • 打赏
  • 举报
回复
1>.parameters

URL:http://localhost:8080/Test/test.action?id=10

在test请求转发的jsp页面上

<s:property value="#parameters.id">

结果显示10

2>.attr

从page>request>session>application范围内查找属性。

找到为止

<s:property value="#attr.name">
jackaudrey 2010-05-14
  • 打赏
  • 举报
回复
还有那个attr和parameters这两个对象代有什么区别
jackaudrey 2010-05-14
  • 打赏
  • 举报
回复
看了一些资料说valueStack好比是一个传送带,在同一个请求的过滤器中能拿到valueStack中的内容,不明白所说的过滤器是什么

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧