我必须检查我的属性文件是否为某个标签是空的,因为我必须渲染元素,但即使标签为空,我仍然得到元素显示键:
<h:panelGroup rendered="#{not empty I18N['key_hint_message'] }">
<h:outputLabel id="hint_label" value="#{I18N['key_label_hint']}
"></h:outputLabel>
<h:outputText value="#{I18N['key_hint_message']}" ></h:outputText>
</h:panelGroup>
答案 0 :(得分:2)
您可以使用ResourceBundle#containsKey()
。
<h:panelGroup rendered="#{I18N.containsKey('key_hint_message')}">
<h:outputLabel value="#{I18N['key_label_hint']}" />
<h:outputText value="#{I18N['key_hint_message']}" />
</h:panelGroup>
您最好不要依赖缺失密钥的默认格式,因为这可以被自定义资源包解析器覆盖。
答案 1 :(得分:0)
JSF实现默认显示缺少资源???resource???
,因此您可以在fn:contains
属性中使用rendered
JSTL函数,如下所示:
<h:panelGroup rendered="${not fn:contains(I18N['key_hint_message'], '???')}">
<h:outputLabel id="hint_label" value="#{I18N['key_label_hint']}"/>
<h:outputText value="#{I18N['key_hint_message']}" />
</h:panelGroup>