2

只是给你们一个快速的问题。

我有一个资源键,它作为字符串存储在托管 bean 中,我想让它解析为特定映射资源包中的值。

这是我开始的:

<h:outputText value="#{msgs[bean.someVal]}"/>

我立即注意到,当 someVal 为空时,我会收到以下异常:

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)。

有人有什么想法吗?我对这个很困惑..

如果您需要更多信息,请告诉我,我希望这足以继续......我认为这只是我正在做的愚蠢的事情;)

4

1 回答 1

2

未找到属性“”

你有一个空字符串。空字符串与null.

请改用empty支票。它将检查该值是否不是null 字符串。

<h:outputText value="#{empty bean.someVal ? '' : msgs[bean.someVal]}" />

顺便说一句,另一种方法是提供一个自定义ResourceBundle实现,#{msgs}它不会抛出异常,而是返回null或一个空String的 onhandleGetObject()方法。

于 2012-05-24T02:18:44.240 回答