cellEditor中的commandLink不会触发action / actionListener

时间:2013-01-17 13:07:24

标签: java jsf-2 primefaces

我使用的是Primefaces 3.4和JSF 2.0。我有一个p:commandLink:

<p:commandLink action="#{wizard.onRemoveFoodItem}" update="@(#ingredientListContent)" immediate="true">
    <span class="ui-icon ui-icon-close"></span>
    <f:setPropertyActionListener target="#{wizard.selectedFoodItem}" value="#{foodItem}" />
</p:commandLink> 

它的目的是从我的p:dataTable中的食物清单中删除一行,并且在正常情况下它正常工作。问题在于我想在同一个位置也有ap:rowEditor,对于那些熟悉primefaces rowEditor的人来说,在编辑时,你可以看到一个检查和一个x图标(用于结束编辑模式)而且我不希望有两个关闭图标,其中一个含义取消编辑模式,另一个取消当前行。

所以我决定将它嵌入到p:cellEditor中,以便&#34; x&#34;在编辑期间隐藏删除行:

<p:cellEditor>   
    <f:facet name="output">  
        <p:commandLink action="#{wizard.onRemoveFoodItem}" update="@(#ingredientListContent)" immediate="true">
            <span class="ui-icon ui-icon-close"></span>
            <f:setPropertyActionListener target="#{wizard.selectedFoodItem}" value="#{foodItem}" />
        </p:commandLink> 
    </f:facet>  
    <f:facet name="input"><h:outputText value="" /></f:facet>                       
</p:cellEditor> 

这奇怪地发送一个ajax请求并得到一个更新响应(没有明显的验证错误),但是它没有调用onRemoveFoodItem上的action方法,就像它不在p:cellEditor标签内一样。我理解p:cellEditor并不是真的意味着以这种方式使用,但我认为当它可见时,它会表现得好像没有p:cellEditor包围它。

任何人都可以在这里看到任何明显错误或者这是一个问题吗?我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:6)

我遇到了类似的问题,并通过将 process =“@ this”属性添加到 p:commandLink 来解决此问题。