无法将组件传递给进程

时间:2014-07-14 11:45:29

标签: jsf primefaces

我尝试处理输入并在JSF中执行操作,但操作甚至没有执行。 这是我的代码试图用样式类引用组件:

<h:panelGroup layout="block">
    <p:inputText id="txtClientCIN" widgetVar="ClientCIN" value="#{client.clientCIN}" required="true" styleClass="textcin"/>
    <p:commandButton id="btnSearchClient" icon="ui-icon-search" action="#{client.checkCIN}" process="@(.textcin)" update="@form" style="margin-left: 10px;"/>
</h:panelGroup> 

我尝试通过设置process="txtClientCIN"

来引用它

但确实也有效。

当我将流程更改为@form时,checkCIN()方法执行得很好。

1 个答案:

答案 0 :(得分:2)

据我所知:

有这样的标准commandButton:

<p:commandButton actionListener=“#{bean.method}”/>

将处理@form,调用bean.method()并不进行任何更新。

而不是

<p:commandButton actionListener=“#{bean.method}” 
                 process=“someComponentId” 
                 update=“otherComponentId”/>

将处理“someComponentId”并更新“otherComponentId”。但是现在命令按钮本身不会被处理,就像在第一个例子中那样。意思是不会调用bean.method()。

所以我们需要

<p:commandButton actionListener=“#{bean.method}” 
                 process=“@this someComponentId” 
                 update=“otherComponentId”/>

或者完全省略process属性或将其设置为“@form”(这是多余的)。

进一步阅读答案here