另一个jsf <f:selectitems> itemValue和消息包问题</f:selectitems>

时间:2011-03-19 16:44:29

标签: jsf internationalization el

我有一个带选择项的selectOneMenu。 如果我使用

<f:selectItem itemValue="3" itemLabel="#{hrBundle['phoneType3']}"/>

效果很好,显示本地化标签。我在List中有更多选项,当我使用f:selectItems时,它会停止工作。 这段代码:

<f:selectItems value="#{values}" var="item" itemLabel="#{hrBundle[item.label]}" itemValue="item.value"/>

将键('phoneType3')显示为标签,甚至

<f:selectItems value="#{values}" var="item" itemLabel="#{hrBundle['phoneType3']}" itemValue="item.value"/>

('hardcoded'作为上面的单个f:selectItem)显示键('phoneType3')而不是本地化标签。

知道我做错了什么吗?

1 个答案:

答案 0 :(得分:4)

这取决于捆绑文件中的密钥是什么。如果您的捆绑中的密钥是item.value的内容,请执行以下操作:

<f:selectItems value="#{myBean.values}" 
 var="item" 
 itemLabel="#{hrBundle[item.value]}" 
 itemValue="#{item.value}"/>

我不知道,如果这是你的原始代码。如果是,请注意以下事项:

  1. 你必须引用一个支持bean 在您的value属性中(如图所示) 上面:用您的{替换myBean 豆名。)。
  2. itemValue属性需要一个 el表达式:itemValue= "#{item.value}"