javascript
jsf集成spring_Spring和JSF集成:国际化和本地化
jsf集成spring
如果您正在開發針對多種語言的JSF應用程序,那么您可能很熟悉<f:loadBundle>標記。 即使您的應用程序不支持使用消息捆綁包進行國際化仍然是一個好主意。 在<f:loadBundle>標簽的作用下,它從Java java.util.ResourceBundle中讀取消息,盡管這可以工作,但Spring開發人員通常更喜歡org.springframework.context.MessageSource接口。作為<f:loadBundle>的替代方案,我一直在開發一個新的<s:messageSource>組件,該組件可用于公開來自任何Spring MessageSource的消息,并提供其他一些優點。
新組件是<f:loadBundle>的直接替代。
<s:messageSource source="#{messageSource}" var="messages"/> <p><h:outputText value="#{messages.hello}"/> </p>source屬性可以是任何解析為MessageSource實例的EL表達式。 如果未指定源,則將使用Spring ApplicationContext 。 var屬性是將用于訪問消息的變量的名稱。
與標準JSF不同,要加載的消息的密鑰將根據要呈現的頁面的ID構建。 例如,假設上面的頁面來自文件WEB-INF / pages / messages / simple.xhtml ,則用于加載hello消息的密鑰將為pages.messages.simple.hello 。 使用這些復合鍵可以防止消息鍵沖突,并使頁面標記清晰美觀。 如果需要,可以使用prefix屬性覆蓋此行為。如果您在XHTML中引用了忘記定義的消息,則將看到警告消息(在開發中)或拋出異常(在生產中)。
與標準JSF一樣,您的消息并包含與<h:outputFormat>一起使用的占位符
pages.message.simple.welcome=Welcome to {1} with {0}<h:outputFormat value="#{messages.welcome}"><f:param value="Spring"/><f:param value="JSF"/> </h:outputFormat><h:outputFormat>標簽有點冗長,因此為了方便起見,Spring消息可以用作Map 。 這使您可以更簡潔地引用占位符:
<h:outputText value="#{messages.welcome['Spring']['JSF']}"/>相同的語法允許您將Java對象映射到消息。 默認情況下,對象是通過從類名稱構建消息鍵來映射的。 例如,以下類:
package org.example; public class ExampleObject { }可以在JSF中引用:
<h:outputText value="#{messages[exampleInstance]}"/>解決以下消息:
org.example.ExampleObject=example對于枚舉對象,消息鍵包括枚舉名稱和類:
package org.example; public enum ExampleObject {ONE, //mapped to message key org.example.ExampleObject.ONETWO //mapped to message key org.example.ExampleObject.TWO }對象消息還可以引用應構成消息一部分的屬性:
org.example.PersonName=Name is {first} {last} ...package org.example; public class PersonName {...public String getFirst() {...}public String getLast() {...} }您還可以通過使用實現org.springframework.springfaces.message.ObjectMessageSource接口的消息源來定義自己的對象消息策略。
如果您想查看其中的任何代碼,請查看GitHub Project中的org.springframework.springfaces.message和org.springframework.springfaces.message.ui軟件包。
參考: Phil Webb博客博客中來自我們JCG合作伙伴 Phillip Webb的Spring和JavaServer Faces集成:國際化和本地化 。
翻譯自: https://www.javacodegeeks.com/2012/06/spring-jsf-integration.html
jsf集成spring
總結
以上是生活随笔為你收集整理的jsf集成spring_Spring和JSF集成:国际化和本地化的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: win10怎么删除默认输入法win10删
- 下一篇: 外汇登记备案如何办理(外汇登记备案)
