使用 Spring 在 Struts 中设置全局变量

发布于 2024-07-19 15:01:31 字数 647 浏览 7 评论 0原文

在 Struts 中设置 servlet 上下文变量的最佳方法是什么? 该变量显示在标题图块中的每个页面上,并且必须从数据库加载。 为此,Hibernate DAO 和 Spring Service 返回请求的值。

我当前的方法是扩展 Struts PlugIn 类并将我的服务注入其中。 这不可能直接在 Struts 中完成,但我找到了一个页面 (http://opensource.atlassian.com/confluence/spring/display/DISC/Spring-enabling+Struts+PlugIns),其中 Ulrik Sandberg 创建了一个允许此类功能的代理。 当我部署应用程序时,这是有效的,但 JUnits 在 java.lang.NullPointerException 上的 servletunit.struts.MockStrutsTestCase.getActionServlet(MockStrutsTestCase.java:331) 中的某处失败。

我可以采取另一种不涉及调试其他类的方法吗?

What is the best approach to set servlet context variable in Struts? This variable is displayed on every single page in header tile and has to be loaded from DB. For that purpose there is Hibernate DAO and Spring Service which returns the requested value.

My current approach was to extend Struts PlugIn class and inject my service into it. This is not possible to do directly in Struts but I found a page (http://opensource.atlassian.com/confluence/spring/display/DISC/Spring-enabling+Struts+PlugIns) where Ulrik Sandberg creates a proxy which allows such functionality. This is working when I deploy my application but JUnits are failing somewhere in servletunit.struts.MockStrutsTestCase.getActionServlet(MockStrutsTestCase.java:331) on java.lang.NullPointerException.

Is there another approach which I can take which is not going to involve debugging someone others classes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千柳 2024-07-26 15:01:31

查看 spring 参考指南和有关 bean 作用域的部分 (3.4)。 您可以拥有一个在浏览器会话生命周期内维护的 Bean,并将其设置为代理会话 Bean。

<!-- a HTTP Session-scoped bean exposed as a proxy -->
<bean id="userPreferences" class="com.foo.UserPreferences" scope="session">

      <!-- this next element effects the proxying of the surrounding bean -->
      <aop:scoped-proxy />
</bean>

这是来自第 3.4.4.5 节的内容。

Look at the spring reference guide and the section (3.4) on bean scopes. You can have a bean that's maintained over the the life of the browser session, and set it up as a proxy session bean.

<!-- a HTTP Session-scoped bean exposed as a proxy -->
<bean id="userPreferences" class="com.foo.UserPreferences" scope="session">

      <!-- this next element effects the proxying of the surrounding bean -->
      <aop:scoped-proxy />
</bean>

That's from section 3.4.4.5.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文