2010-01-28 76 views
1

我想初始化(在Struts2中)一个属性(从一个文件加载数据)一次,并使整个struts 2应用程序的属性可用。 我该如何实现这一目标?我需要覆盖支柱2调度员?Struts 2 dispatcher

问候 拉朱

回答

1

您可以创建在web.xml打开你的属性文件,并通过设置需要的值ServletContext定义的ServletContextListener

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

ServletContext具有应用范围广。

更新:

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

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

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

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

你需要使用类路径和名称,以取代CLASS_PATH.CLASS_NAME在上面的XML您刚刚创建的上下文监听器类。

+0

感谢您的回复...我正在使用Struts 2 ..我该怎么做....我必须重写struts2调度程序的权利.... – raju 2010-02-08 18:46:57

+0

我提供了更多关于如何实现ServletContextListener的详细说明。如果您对我的指示有问题,请告诉我。 – Abboq 2010-02-08 20:13:07

+0

感谢您的回复... – raju 2010-02-08 21:13:13