我有一组数据列表形式的数据,我想根据菜单类别显示每种食物,但是我无法使用ELParser中的逻辑运算符eq
进行检查,请帮我解决这个问题< / p>
<ui:repeat var="menu" value="#{eventBean.menuList}">
<li><ol><h5>#{menu}</h5></ol></li>
<ui:repeat var="food" value="#{eventBean.projectDetail.foodList}">
<li>
<ui:fragment ></ui:fragment>
<ol><h:outputText rendered="#{food.menu eq menu}">#{food.name}</h:outputText></ol>
</li>
</ui:repeat>
</ui:repeat>
菜单可以显示,但内部循环不显示任何食物。我曾尝试#{food.menu eq #{menu}}
,但会在ELParser上获得例外
编辑1:
我刚刚意识到<h:outputText>#{food.name}</h:outputText>
基本上无法显示值,我必须<h:outputText value="#{food.name}"></h:outputText>
才能显示值,我的错误。
现在我正在搜索是否要过滤条件
答案 0 :(得分:1)
我曾尝试JSTL
c:if
进行状态检查,但没有按预期工作,然后我搜索堆栈溢出,link通过实施帮助我:
<ui:fragment rendered="#{food.menu eq menu}">#{food.name}</ui:fragment>
答案 1 :(得分:-1)
根据您的过滤需要的复杂程度,我会使用基本的jsf标签或自定义功能
仅限几个选项:
<c:if test="#{condition}">do stuff</c:if>
对于有限数量的选项:
<c:choose>
<c:when test="#{condition1}">do stuff</c:when>
<c:when test="#{condition2}">do other stuff</c:when>
<c:otherwise>do something else</c:otherwise>
</c:choose>
对于N选项的,请查看此处的sollution,您可以使用自定义EL函数执行java函数可以执行的任何操作: