Struts2 的ActionContext 详解

Struts2 的ActionContext 详解nbsp ActionContex 是 Action 的上下文 Struts2 自动在其中保存了一些在 Action 执行过程中所需的对象 比如 session parameters locale 等 Struts2 会根据每个执行 HTTP 请求的线程来创建对应的 ActionContex 即一个线程有一个唯一的 ActionContex 因此 使用者可以使用静态方法 ActionContex getContext

  ActionContext是Action的上下文,Struts2自动在其中保存了一些在Action执行过程中所需的对象,比如session, parameters, locale等。Struts2会根据每个执行HTTP请求的线程来创建对应的ActionContext,即一个线程有一个唯一的ActionContext。因此,使用者可以使用静态方法ActionContext.getContext()来获取当前线程的ActionContext,也正是由于这个原因,使用者不用去操心让Action是线程安全的。

    无论如何,ActionContext都是用来存放数据的。Struts2本身会在其中放入不少数据,而使用者也可以放入自己想要的数据。ActionContext本身的数据结构是映射结构,即一个Map,用key来映射value。所以使用者完全可以像使用Map一样来使用它,或者直接使用Action.getContextMap()方法来对Map进行操作。

    Struts2本身在其中放入的数据有ActionInvocation、application(即ServletContext)、conversionErrors、Locale、action的name、request的参数、HTTP的Session以及值栈等。完整的列表请参考它的Javadoc(本文附录有对它包含内容的讨论)。

    由于ActionContext的线程唯一和静态方法就能获得的特性,使得在非Action类中可以直接获得它,而不需要等待Action传入或注入。需要注意的是,它仅在由于request而创建的线程中有效(因为request时才创建对应的ActionContext),而在服务器启动的线程中(比如fliter的init方法)无效。由于在非Action类中访问其的方便性,ActionContext也可以用来在非Action类中向JSP传递数据(因为JSP也能很方便的访问它)。

    一些例子:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230531.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月17日 下午5:01
下一篇 2026年2月17日 下午5:22


相关推荐

  • 浅谈Johnson算法

    浅谈Johnson算法在有向图的处理中 通常会遇到一个非常棘手的问题 那就是遇到负环 许多最短路算法例如 Dij 和 Floyd 都不可以处理负环 包括堆优化的 这个时候我们可以怎样处理呢 通常来说最常见的方法是使用能够处理负环的方法 Bellman Ford 和基于其的 Spfa 但是有人会问 可不可以不用这些呢 有 那就是 Johnson

    2026年3月17日
    2
  • 雅虎优化最佳实践

    雅虎优化最佳实践毕竟对于前端来说,优化是躲不开的主题。在看200(cache)和304区别的时候,翻到了雅虎这边归纳出来的准则,虽然是十多年前的东西了吧,但是还是具有参考价值的,因此在原文基础上我进行了一些归纳翻译。原文地址:https://developer.yahoo.com/performance/rules.html减少初始访问的请求数,多使用缓存尽量减少使用的组件种类,因为页面会花很多时间下载组件们。尽…

    2022年7月13日
    30
  • 深度学习图像标注工具汇总

    深度学习图像标注工具汇总对于监督学习算法而言,数据决定了任务的上限,而算法只是在不断逼近这个上限。世界上最遥远的距离就是我们用同一个模型,但是却有不同的任务。

    2022年6月1日
    42
  • 被「元宝」掏走700亿后,腾讯不淡定了

    被「元宝」掏走700亿后,腾讯不淡定了

    2026年3月12日
    2
  • dw自动滚动图片_DW图片无缝滚动代码

    dw自动滚动图片_DW图片无缝滚动代码DIV的图片无缝滚动,DIV图片上无缝滚动,DIV图片下无缝滚动,DIV图片左无缝滚动,DIV图片右无缝滚动1.先了解一下对象的几个的属性:innerHTML:设置或获取位于对象起始和结束标签内的HTMLscrollHeight:获取对象的滚动高度。scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶…

    2022年7月18日
    17
  • ajax 常用写法「建议收藏」

    ajax 常用写法「建议收藏」$.ajax({type:”POST”,url:”/aa/bb”,data:{},success:function(data){},error:function(jqXHR){}});——————————————$.ajax({.

    2026年4月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号