【发布时间】:2023-03-09 07:40:02
【问题描述】:
我有以下代码:
<h:outputText value="#{lecture.lectureName}" />
<c:forEach items="#{criterionController.getCriteriaForLecture(lecture)}" var="criterion">
<h:outputText value="#{criterion.criterionName}" />
<h:commandLink value="Edit"/>
<h:commandLink value="Delete"/>
</c:forEach>
输出文本部分工作正常并显示它应该显示的内容,因此这证明lecture 对象已设置。然而 for each 标签给出了一个空指针异常。调试代码时,看到调用getCriteriaForLecture()方法时,lecture对象被取为null。
如何解释这种行为?
【问题讨论】:
-
尝试将
c:forEach更改为ui:repeat -
还是一样,我又得到一个空指针异常
-
您的托管 bean 请求或视图是否有作用域?另外,为什么要发送整个托管 bean 而不是属性?
-
它是会话范围的。不,该方法返回一个对象列表,我计划在视图中显示一些属性。这不是应该做的吗? @LuiggiMendoza
-
@BillJames 在 JSF 1.x 中。在 JSF 2 中,您可以在 EL 中调用托管 bean 方法时传递参数。