2014-07-14 3 views
0

입력을 처리하고 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"을 설정하여 ID로 그것을 참조하기 위해 노력뿐만 아니라 작동 did'nt : 여기에 스타일 클래스와 구성 요소를 참조하려고 내 코드입니다.

@form으로 프로세스를 변경하면 checkCIN() 메서드가 올바르게 실행됩니다.

+1

process = "@ this txtClientCIN" –

+0

으로 시도해보십시오. o 작동했습니다 ... 감사합니다! 하지만 왜? 이드 만이 충분하지 않니? –

답변

2

내가 알고있는 것처럼이 같은 표준 명령 단추를 갖는

을 :

<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”/> 

이 필요하거나 두 과정을 생략 완전히 속성거나 "@form"(불필요 함)로 설정합니다.

대답 대답 here에서 추가 읽기.

관련 문제