【问题标题】:JSF 2.0 EL handeling nulls for resource keysJSF 2.0 EL 处理资源键的空值
【发布时间】:2012-05-24 00:28:21
【问题描述】:

只是给你们一个简单的问题。

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

这是我开始的:

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

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

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

【问题讨论】:

    标签: jsf-2 tomcat6 myfaces resourcebundle


    【解决方案1】:

    找不到属性

    你有一个空字符串。空字符串与null 不同。

    改用empty 检查。它将检查该值是否不是null 如果它不是一个空字符串。

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

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

    【讨论】:

    • 谢谢!!我知道这是我在做的蠢事!
    猜你喜欢
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多