【问题标题】:Evaluation with <c:when> in data table doesn't work在数据表中使用 <c:when> 进行评估不起作用
【发布时间】:2023-03-08 17:48:01
【问题描述】:

我已经搜索并尝试过,但这次我真的卡住了。

我正在尝试构建一个简单的数据表(primefaces),其中单元格内容可以是不同类型的。每个单元格内容都有一个持有者类,可以持有不同的实体,我想使用 以实体特定的方式检查和显示正确的实体。

代码如下:

<p:dataTable emptyMessage="" value="#{date.getThreadContent(column.propertyID)}" var="content">

                    <p:column>
                        #{content.type}

                        <c:choose>
                            <c:when test="#{content.type == 'activity'}">
                                #{content.activity.name}
                            </c:when>   
                            <c:when test="#{content.type == 'todo'}">
                                #{content.activity.name}
                            </c:when>
                            <c:otherwise>
                                Neither activity or todo
                            </c:otherwise>
                        </c:choose>
                    </p:column>

                </p:dataTable>

无论我在 bean 中尝试布尔值还是字符串值(我在上面的代码中使用字符串值),EL 评估都不起作用。 因此,每次内容不为空时,输出首先显示来自 #{content.type} 的正确内容类型,然后与“既不是活动也不是待办事项”一起显示。

我也可以说,这个数据表本身代表了父数据表(每个日期的实体列表)中的单元格内容,当我试图隔离问题时,该单元格内容在此代码中不可见。

难道这种表达方式不能在 a 中完成吗? 任何帮助表示赞赏。

【问题讨论】:

    标签: jsf primefaces el evaluation


    【解决方案1】:

    使用 JSF 渲染的标签来做你的条件显示逻辑,它完全从 DOM 中移除它并且使验证更容易。

    参考:http://docs.oracle.com/javaee/6/tutorial/doc/bnaik.html EL 表达式 BalusC 在这里也提供了一个很好的解释:JSTL c:if doesn't work inside a JSF h:dataTable

    <p:dataTable emptyMessage="" value="#{date.getThreadContent(column.propertyID)}" var="content">
       <p:column>
             #{content.type}
              <h:outputText value="#{content.activity.name}" rendered="#{content.type == 'activity' or content.type == 'todo'}" />
    
              <h:outputText value="Neither activity or todo" rendered="#{content.type != 'activity' and content.type != 'todo'}" />   
       </p:column>
    
    </p:dataTable>
    

    【讨论】:

    • 感谢您的全面回答!它与您的代码更改完美配合。
    猜你喜欢
    • 2014-11-02
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2016-06-08
    相关资源
    最近更新 更多