数据库值的 JSF 翻译

JSF Translation of database values

在 JSF 前端转换来自后端 (hibernate/mysql) 的动态值是否有最佳实践。只是想在 oneselectmenu.

中显示它们

我的问题只是确定来自数据库的所有值的范围...诸如性别、称呼等等。所有这些东西都存储在数据库中。所有静态值,如输入字段的标签等,都已使用语言消息 属性 文件翻译。

你的方法是什么?

假设您已经在数据库中保存了性别值,并且希望在 p:selectOneMenu 中将其国际化。

首先创建您的关键信息,例如:

choose = Choose
gender = Gender
database.gender.MALE = Male
database.gender.FEMALE = Female

使用这样的键,您在数据库中存储的值(并由 dao 返回)必须看起来像 MALE 和 FEMALE。

那么您可以使用此代码进行 i18n

<p:outputLabel value="#{msg.gender}"/>
<p:selectOneMenu value="#{bean.chosenGender}">
    <f:selectItem itemLabel="#{msg.choose}" itemValue="" />
    <f:selectItems var="gender" value="#{bean.genderList}" 
                   itemLabel="#{msg['database.gender.' += gender]}" />
</p:selectOneMenu>