你知道你可以改變struts.xml的配置文件名稱,如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-config.xml</param-value>
</init-param>
</filter>
您可以使用此功能的struts.xml動態地改變。
您需要擴展StrutsPrepareAndExecuteFilter並在此處加載您的動態配置。在web.xml
中用struts替換新的fildter。
public class MyStrutsPrepareAndExecuteFilter extends StrutsPrepareAndExecuteFilter{
@Override
protected void postInit(Dispatcher dispatcher, FilterConfig filterConfig) {
//load your config here
}
}
請看看StrutsPrepareAndExecuteFilter
的源代碼。你可以看到如何加載配置,你可以如何改變它。
如果你只想動態更改應用程序的消息,你可以通過剛剛在MyStrutsPrepareAndExecuteFilter
struts.xml的文件調用
LocalizedTextUtil.addDefaultResourceBundle ("messages/customize")
不是由彈簧加載更容易做到這一點。 –感謝Aleksandr;有沒有另一種方式來讀取struts文件中的屬性/參數? – dipanda
您可以在構建應用時替換關鍵字。或者將所有文件包含在struts.xml中,並只將其中的一部分複製到包中。 –