1

我只想初始化(在 Struts2 中)一个属性(从文件加载数据)一次,并使该属性可用于整个 struts 2 应用程序。我怎样才能做到这一点?我需要覆盖 struts 2 调度程序吗?

问候拉朱

4

1 回答 1

1

您可以创建一个打开属性文件并将所需值设置为通过的ServletContextListener定义:web.xmlServletContext

getServletContext().setAttribute("dataKey", dataValue);

具有ServletContext应用范围。

更新:

您可以创建一个实现的新类ServletContextListener(这里是它的 JavaDoc:ServletContextListener),这需要您定义contextInitialized()contextDestroyed()方法。

contextInitialized()在您的 servlet 开始接受请求之前调用该方法。在您的contextInitialized()方法中,您将包含getServletContext().setAttribute("dataKey", dataValue)调用。

为了注册你的监听器,你需要在你的web.xml文件中添加一个监听器定义:

<listener>
    <listener-class>CLASS_PATH.CLASS_NAME</listener-class>
</listener>

您需要将上述 XML 中的 CLASS_PATH.CLASS_NAME 替换为您刚刚创建的上下文侦听器类的类路径和名称。

于 2010-02-03T23:04:15.210 回答