在Struts中设置servlet上下文变量的最佳方法是什么?此变量显示在标题磁贴中的每个页面上,并且必须从DB加载。为此目的,有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)中某处失败时,这是有效的。
我可以采取另一种方法,不会涉及调试其他人的课程吗?
答案 0 :(得分:0)
查看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节。