对你们来说只是一个简单的问题。
我有一个资源键,它作为字符串存储在托管bean中,我想让它解析为特定映射的Resource Bundle中的值。
以下是我的开始:
<h:outputText value="#{msgs[bean.someVal]}"/>
我立即注意到,当someVal为null时,我会得到以下异常:
javax.el.PropertyNotFoundException: /webpage.xhtml at line 118 and column 188 value="#{msgs[bean.someVal]}": Property '' not found on type java.util.PropertyResourceBundle
所以我试图建立一个这样的三元组:
<h:outputText value="#{bean.someVal == null ? '' : msgs[bean.someVal]}"/>
但是我只引用了新值,我得到了相同的错误。
我在Tomcat6上运行JSF2.0(Apache)。
有人有任何想法吗?我对这个很难过。
如果您需要更多信息,请告诉我,我希望这已经足够了......我认为这只是我正在做的事情;)
答案 0 :(得分:2)
找不到属性
你有一个空字符串。空字符串与null
不同。
请改为使用empty
检查。如果该值不是空字符串,它将检查该值是否为null
和。
<h:outputText value="#{empty bean.someVal ? '' : msgs[bean.someVal]}" />
顺便提一下,另一种方法是在ResourceBundle
上提供一个自定义#{msgs}
实现,它不会抛出异常,而是返回null
或空String
} handleGetObject()
方法。