在c:if语句中使用ui:repeat变量

时间:2016-02-09 18:43:51

标签: jsf if-statement jsf-2 jstl uirepeat

我正在尝试在ui:repeat标记内使用c:if语句。 但是,在if标签内部,U无法获得course.days的值。它总是评估为空。

    <div id="schedule_wrapper">
        <ui:repeat value="#{schedule.courses}" var="course">                
            <div class="course">
                <b>#{course.shortTitle}</b> : #{course.subjectCode} #{course.courseNumber}-#{course.section}<br /> 
                #{course.roomCode} #{course.buildingName} <br />
                <c:if test="${not empty course.days}">
                    #{course.days} : #{course.startTime} - #{course.endTime}
                </c:if>                                         
            </div>
        </ui:repeat>
    </div>

如何在if语句中使用course.days变量的任何想法? 或者另一种实现相同目的的方法......
所有其他course.xxxxx值都将其值拉入。

2 个答案:

答案 0 :(得分:1)

尝试在使用渲染中使用内部来检查您的状况。 渲染=&#34;#{not empty course.days}&#34;或#{course.days&gt; 0}如果days是整数

<div id="schedule_wrapper">
    <ui:repeat value="#{schedule.courses}" var="course">                
        <div class="course">
            <b>#{course.shortTitle}</b> : #{course.subjectCode} #{course.courseNumber}-#{course.section}<br /> 
            #{course.roomCode} #{course.buildingName} <br />
            **<ui:fragment rendered="#{not empty course.days}">
                #{course.days} : #{course.startTime} - #{course.endTime}
            </ui:fragment>**                                        
        </div>
    </ui:repeat>
</div>

答案 1 :(得分:0)

我找到了另一种方法来实现这一目标。 而不是:

<c:if test="${not empty course.days}">
    #{course.days} : #{course.startTime} - #{course.endTime}
</c:if> 

我用过:

<h:panelGroup rendered="#{not empty course.days}">
    #{course.days} : #{course.startTime} - #{course.endTime}
</h:panelGroup>

如果使用if语句,我仍然感兴趣。