我尝试处理输入并在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()
方法执行得很好。
答案 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。