2013-01-04 59 views
0

在JSP頁面中,我得到了一個名爲School的bean,它有一個名爲getDescription(String Locale)的方法。如果我通過en_US它將返回英文文本,並且對於fr_CA它將返回法文文本。如何調用JSTL中不同語言環境的不同方法

我使用格式化標籤,如沒有問題:<fmt:message key="school_list.title2"/>靜態內容,但有什麼辦法,我可以通過豆類參數,所以我可以使用類似:${school.description}${school.description(locale)}

有沒有什麼好的方法來處理這個使用標準的EL和JSTL?

回答

0

把它放進豆子裏。添加一個方法getDescription(),該方法使用當前的Locale調用現有的方法。

+0

唯一的問題是,bean必須以某種方式知道當前頁面的Locale。 –

0

如果你是using JSP 2.2,那麼你可以去${school.getDescription(locale)}或@Med建議,對於deferred syntax

如果您的環境不提供JSP 2.2,那麼如果您至少有JSP 2.0,那麼您可以在通用function中包裝一個方法調用,該調用需要調用bean的方法名稱和參數列表,並反思地調用方法。然後,您可以執行以下操作:${f:invoke(bean, 'getDescription', locale)}

如果您使用的是JSP 1.2,那麼您可以獲得與JSP 2.0中的函數類似的行爲,但是使用標記代替(函數是在JSP 2.0中添加的)。

相關問題