ADF forEach里面的ul意外行为

时间:2018-01-30 03:18:17

标签: jsp jsf oracle-adf

我正在尝试在ADF页面中生成动态无序列表。

使用的代码是:

<ul class="navbar-nav ml-auto">
    <af:forEach var="menu" varStatus="vs"
        items="#
        {navigationContext.defaultNavigationModel.listModel['startNode=/, 
        includeStartNode=false']}">
            <li class="nav-item">
                <af:goLink id="pt_gl3" text="#{menu.title}"
                    destination="#{menu.goLinkPrettyUrl}"
                    targetFrame="#{menu.attributes['Target']}" />
            </li>
    </af:forEach>
</ul>

因此,预期结果为:

<ul class="navbar-nav ml-auto">
   <li class="nav-item">...</li>
</ul>

实际结果是:

<ul class="navbar-nav ml-auto"></ul>
<div>
    <li class="nav-item"></li>
    <div>
        <a dir="rtl" data-afr-tlen="4" id="T:pt_gl3" class="xf6" data-afr-fcs="true" href="/webcenter/portal/Test/pages_home" target="">Home</a>
    </div>
    <div></div>
</div>
<div>
    <li class="nav-item"></li>
    <div>
        <a dir="rtl" data-afr-tlen="8" id="T:j_idt131" class="xf6" data-afr-fcs="true" href="/webcenter/portal/Test/pages_newpage" target="">New Page</a>
    </div>
    <div></div>
</div>

任何人都知道为什么它会在列表项之前生成div?

1 个答案:

答案 0 :(得分:0)

尝试使用

<ui:repeat xmlns:ui="http://java.sun.com/jsf/facelets" value="#
    {navigationContext.defaultNavigationModel.listModel['startNode=/, 
    includeStartNode=false']}"... >

而不是af:forEach,看看你是否注意到任何差异。