문제

액션 핸들러 내에서 양식 필드의 ID를 결정해야합니다. 필드는 포함 된 페이스 성분의 일부이므로 양식은 다릅니다.

포함 .xhtml

<ui:component>
  <h:inputText id="contained_field"/>
  <h:commandButton actionListener="#{backingBean.update}" value="Submit"/>
</ui:component>

example_containing.xhtml

<h:form id="containing_form">
  <ui:include src="/included.xhtml"/>
</h:form>

양식의 ID를 어떻게 결정할 수 있습니까? update 런타임에서의 방법? 또는 더 나은 것은 입력 필드의 ID를 직접적으로 제공합니다.

도움이 되었습니까?

해결책

버튼을 백킹 콩에 바인딩 한 다음 가장 가까운 양식을 찾을 때까지 getParent ()를 사용하십시오.

다른 팁

프로그래밍 방식으로 Jsight의 방법을 사용합니다. 요소의 ID를 알 수 있습니다 (JSF가 작성하지 않으면 ID의 번호를 매기는 수단을 알 수 없습니다). H : 양식은 이름 지정 컨테이너로서 다른 명명 컨테이너로 싸서없는 한 양식을 포함합니다. 포함됩니다. 포함 된 필드 ':' ':'기본적으로 명명 분리기는 JSF이고 ID는 이와 같이 생성됩니다. , (ParentnamingContainerId :)*componentId

업데이트 방법은 ActionListener 유형이므로 다음과 같이 UI 구성 요소에 액세스 할 수 있습니다.

public void update(javax.faces.event.ActionEvent ac) {
      javax.faces.component.UIComponent myCommand = ac.getComponent( );
      String id = myCommand.getId(); // get the id of the firing component

      ..... your code .........

}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top