我的p:dataTable
中有两例奇怪的行为。首先,当我尝试使用h:link
调用f:param
时,链接始终会发送相同的ID。始终是第一个条目的id。
更大的问题是当我按下命令按钮时h:link
被调用,虽然这种行为完全没有预期。特别是没有正确的参数。
这是一个Bug还是我做错了什么?
当我删除h:link
时,一切都按预期工作。
我很感激在这件事上有任何帮助
我的Primefaces版本是3.5,我在Tomcat 7上使用Liferay 6.1。使用最新的FacesBridge
<h:form id="serviceForm">
<p:dataTable id="newServicesTable" var="service" value="#{cloudServicesBean.newServices}" rowKey="service.serviceId" selection="#{cloudServicesBean.selectedService}">
<p:column headerText="Servicename">
<h:link outcome="/views/cloudservice/overview.xhtml" includeViewParams="true" value="#{service.serviceName}">
<h:outputText value="#{service.serviceId}"/>
<f:param name="selectedServiceId" value="#{service.serviceId}" />
</h:link>
</p:column>
<p:column headerText="Provider">
<h:outputText value="#{adminBean.getOrganizationNameForId(service.providerId)}" />
</p:column>
<p:column headerText="Datum">
<h:outputText value="#{service.createDate}" />
</p:column>
<p:column headerText="Aktionen" rendered="#{adminBean.isUserAdministrator()}">
<p:commandButton icon="ui-icon-check" action="#{cloudServicesBean.setServiceApproved}" update=":serviceForm">
<f:setPropertyActionListener value="#{service}" target="#{cloudServicesBean.selectedService}" />
</p:commandButton>
</p:column>
</p:dataTable>
答案 0 :(得分:1)
我有完全相同的问题。我在Tomcat 7上使用Liferay 6.0.11运行Primefaces 3.5。当我将Liferay JSF依赖项从版本3.1.2.ga3切换到3.1.3-ga4时,问题得到了解决。
<dependency>
<groupId>com.liferay.faces</groupId>
<artifactId>liferay-faces-alloy</artifactId>
<version>3.1.3-ga4</version>
</dependency>
<dependency>
<groupId>com.liferay.faces</groupId>
<artifactId>liferay-faces-bridge-impl</artifactId>
<version>3.1.3-ga4</version>
</dependency>
<dependency>
<groupId>com.liferay.faces</groupId>
<artifactId>liferay-faces-portal</artifactId>
<version>3.1.3-ga4</version>