2012-09-11 22 views
3

我正在用JSP和Java Servlet構建Web應用程序。目前,我正在使用JSTL fmt來使用屬性文件(messages.properties)進行國際化。但是我的客戶希望能夠更新文本,因此我需要將屬性文件中的鍵/值移至數據庫。問題是我不知道如何從數據庫中讀取文本,例如在JSP文件中標記 <fmt:message>標記。使用JSTL和數據庫中的鍵/值在JSP中進行本地化

任何幫助都非常歡迎,感謝

//莫莫

+1

數據庫查詢重量級;如果您的網頁中的每個標題都必須進行查詢,它將會非常緩慢。我建議在需要時重新加載國際化捆綁的機制。 – SJuan76

+0

您是否已經設置了數據庫訪問權限?您可以在數據庫中使用語言環境或語言鍵存儲對象的名稱和描述,並讓您的servlet確定當前的語言環境。 – Pao

+0

感謝您的回答。 @ SJuan76這個解決方案確實會使應用程序非常慢。你有什麼建議如何在需要時重新加載國際化包? –

回答

0

不與fmt。您要麼寫自己的標籤,要麼更改fmt的代碼。

+0

是的,我明白,謝謝:-) –

1

<fmt:message>可以利用LocalizationContext,其反過來利用ResourceBundle。所以,真的,你應該關注如何創建一個滿足你需求的ResourceBundle。如果你絕對必須使用數據庫,也許有人已經創建了一個ResourceBundle實現來處理它。確保你調查的一件事是,只要你至少使用Java 6,就是ResourceBundle.Control。可能會發現您可以繼續使用屬性文件,但可以自定義緩存行爲。

+0

是的,我使用Java 6.使用屬性文件與緩存行爲聽起來像最好的解決方案。我會調查審批。謝謝 –