2011-11-25 114 views
2

我在Tomcat 6.x上做了一個JSF 2.0應用程序。我有不同語言的資源包,是否可以將webapp外的屬性文件外部化?帶外部資源包的JSF

就目前我在faces-config.xml中有這樣的:

<locale-config> 
     <default-locale>fr</default-locale> 
     <supported-locale>en</supported-locale> 
     <supported-locale>es</supported-locale> 
    </locale-config> 
    <resource-bundle> 
     <base-name>front</base-name> 
     <var>messages</var> 
    </resource-bundle> 

我該怎麼辦?

謝謝。

回答

3

是的,這絕對有可能。要點,只需將文件放入類路徑中。您可以通過將其放置在Web應用程序的運行時類路徑覆蓋的任何現有路徑中,或者將新路徑添加到Web應用程序的運行時類路徑中。

您可以通過在Tomcat的/conf/catalina.propertiesshared.loader中指定它來向類路徑添加新路徑。假設你已經放置在/var/webapp/conf文件夾front*.properties文件,那麼你需要指定shared.loader如下:

shared.loader = /var/webapp/conf 
+0

嘿@BarusC一個問題。假設我的屬性文件位於C:/ Program File/My app/front.properties。我有「shared.loader = C:/程序文件/我的應用程序」可以嗎?資源包的基本名稱仍然只是「前面」? – Damian

+0

如果路徑包含空格,則需要引用路徑。即'shared.loader =「C:/ Program File/My app」'。順便說一下,這是默認的「程序文件」,而不是「程序文件」。 – BalusC

+0

我試過使用引號,但Tomcat不會再啓動了,它會引發此異常:「類加載器創建拋出異常java.io.IOException:文件名,目錄或卷無效」任何想法爲什麼?我正在使用Tomcat 6.0.32。我已經擺脫了空間C:/ Progra〜1/MyApp – Damian

0

可能是因爲文件夾名稱的空間;嘗試把資源包文件放在另一個地方,例如:c:/temp/resources/