List 将实体与EL相等运算符进行比较似乎永远不会返回true
我在一个实体列表上迭代,呈现一些带有特定图标的链接。我希望在迭代过程中根据当前活动的课程有条件地设置List 将实体与EL相等运算符进行比较似乎永远不会返回true,list,jsf,el,equality,List,Jsf,El,Equality,我在一个实体列表上迭代,呈现一些带有特定图标的链接。我希望在迭代过程中根据当前活动的课程有条件地设置class属性值,如下所示,以便“活动”项获得不同的样式: <ui:repeat value="#{lessonBean.allLessons}" var="lesson"> <li> <h:form> <h:commandLink> <i class="#{les
class
属性值,如下所示,以便“活动”项获得不同的样式:
<ui:repeat value="#{lessonBean.allLessons}" var="lesson">
<li>
<h:form>
<h:commandLink>
<i class="#{lessonBean.currentLesson == lesson ? 'green' : ''}" />
</h:commandLink>
</h:form>
</li>
</ui:repeat>
它在比较时似乎永远不会返回true
,因此永远不会打印绿色。我搜索了一些示例,并使用{view.viewId}
找到了这些示例,但这不符合我的要求
如何实现我的要求?如果课程
实体没有正确实现该方法,则此构造将失败,因此表示相同“值”的两个实例将永远不相等
据此行动。以下是一个基于实体技术ID的示例:
private Long id;
@Override
public boolean equals(Object other) {
return (other != null && getClass() == other.getClass() && id != null)
? id.equals(getClass().cast(other).id)
: (other == this);
}
另见:
我尝试了这个“#{lessonBean.lsn.id==lesson.id?”绿色“:”}”,但仍然没有变为真,所以这些没有返回预期值?那么,请确保它们返回预期值,以便比较将返回true
。