我观察到一种相当奇怪的行为,我似乎无法找到解释。以下结构呈现足球比赛的阵容条目列表:
<h:head/>
<h:body>
<ui:composition xmlns:teams="http://java.sun.com/jsf/composite/teams">
<h:panelGroup id="layerFragment">
<ui:fragment rendered="#{abean.showLayer}">
<ui:repeat var="e" value="#{abean.bbean.entries}" varStatus="status">
<tr>
<td><h:outputText value="#{status.index+1}" />.</td>
<td>
<h:selectOneMenu id="position" value="#{e.position}"
converter="PositionConverter">
<f:selectItems value="#{abean.positions}" />
</h:selectOneMenu>
</td>
<td>
<h:outputLabel class="inv" for="name" value="#{e.player}" />
<p:autoComplete id="name" value="#{e.spieler}"
completeMethod="#{abean.completePlayer}" var="s1"
itemLabel="#{s1.name}" itemValue="#{s1}"
converter="SpielerConverter">
<p:ajax event="itemSelect"
listener="#{abean.playerCompleted}" update="position"/>
</p:autoComplete>
</td>
</tr>
</ui:repeat>
...
正如您所看到的,它包含一个自动完成字段和每行下拉列表,但总而言之它完全是香草色。现在我将其嵌入到一个组件中,该组件从命令链接重叠。单击它时,将显示叠加层并显示阵容。
这可以从阵容列表中调用,叠加和渲染。所有这些都很好。除了事实,p:autocomplete得到FIRST条目错误!我仔细检查,重复获得正确的值。但是,p:autocomplete似乎只保留了之前运行的第一个行。它也总是在同一行。
我迷路了。有人知道这里发生了什么吗?我正在使用Primefaces 3.5 btw。
编辑:这是层次结构中它上面的组件。弹出窗口在layer.xhtml中定义。 leftcolumn.xhtml中的阵容列表。
<?xml version="1.0" encoding="UTF-8" ?>
<ui:composition template="/admin/template/master_layout.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:param name="viewName" value="ticker" />
<ui:define name="windowTitle">Tickern</ui:define>
<ui:define name="leftcolumn">
<ui:include src="/fussball/leftcolumn.xhtml" />
</ui:define>
<ui:define name="breadcrumb">
<ui:include src="/fussball/breadcrumb.xhtml" />
</ui:define>
<ui:define name="content">
<ui:include src="/fussball/ticker.xhtml" />
</ui:define>
<ui:define name="layer">
<ui:include src="/fussball/layer.xhtml" />
</ui:define>
</ui:composition>