我开始学习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项”我希望它会引发异常或至少将问题写入日志,但没有任何反应。
我试图谷歌这个问题,但似乎没有人。
感谢您的帮助。
编辑:或者,这是正常行为吗?
答案 0 :(得分:6)
这不是JSF特有的。这是EL(那些#{}
事物)特有的。它设计为nullsafe。如果范围内没有可用的内容,即null
,则不会采取进一步的操作。它什么都不打印,不会抛出NullPointerException
。这在允许empty
情况的情况下特别有用。
如果您想提出异常或警告报告,那么您必须编写自己的ELResolver
,当解析后的值为null
时,它会执行此操作。可以找到一篇关于为JSF实现自己的ELResolver
的好文章here。