JSF不报告未定义的bean

时间:2011-02-02 23:28:27

标签: java jsf el javabeans

我开始学习Java,JSF2和JPA2,并开始使用“Pet Catalog”示例项目。我使用Eclipse + Glassfish。

所以我有JSF视图页面,其中包含以下行:

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

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

我试图谷歌这个问题,但似乎没有人。

感谢您的帮助。

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

1 个答案:

答案 0 :(得分:6)

这不是JSF特有的。这是EL(那些#{}事物)特有的。它设计为nullsafe。如果范围内没有可用的内容,即null,则不会采取进一步的操作。它什么都不打印,不会抛出NullPointerException。这在允许empty情况的情况下特别有用。

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