【问题标题】:JSF does not report undefined beansJSF 不报告未定义的 bean
【发布时间】:2011-02-02 23:28:26
【问题描述】:

我开始学习 Java、JSF2 和 JPA2 并使用“宠物目录”示例项目开始。我使用 Eclipse + Glassfish。

所以我有以下行的 JSF 视图页面:

<h:outputText value="Item #{catalog.pagingInfo.firstItem + 1} .. #{cataloTYPO.pagingInfo.lastItem} of #{catalog.pagingInfo.itemCount}"/>

cataloTYPO 不存在,它不是 bean,不是类,什么都不是。问题是 JSF 似乎对此非常满意,并输出“第 1 项 .. of 29”我希望它会引发异常或至少将问题写入日志,但没有任何反应。

我试图用谷歌搜索这个问题,但似乎没有人知道。

感谢您的帮助。

编辑:或者,这是正常行为吗?

【问题讨论】:

    标签: java jsf el javabeans


    【解决方案1】:

    这不是 JSF 特有的。这是特定于 EL 的(那些#{} 的东西)。它被设计为空安全的。如果范围内没有可用的内容,即它是null,那么它将不采取进一步的行动。它什么也不打印,也不会抛出NullPointerException。这在允许empty 情况的情况下特别有用。

    如果您仍然想引发异常或警告报告,那么您必须编写自己的ELResolver,当解析的值变成null 时,它会执行此操作。一篇关于为 JSF 实现自己的 ELResolver 的好文章可以在 here 找到。

    【讨论】:

    • 感谢您的有用回答。鉴于 Java 通常是不能容忍错误的(与 PHP 相比),这对我来说是非常出乎意料的。我认为这种行为适合生产阶段,但不太适合开发阶段......
    • EL 基本上是一门独立的语言。
    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多