2014-11-12 2 views
0

웹 응용 프로그램 (myfaces 2.2)의 경우 응용 프로그램의 속도를 높이려면 구성 요소 트리를 줄여야합니다. 어떻게해야합니까?복원보기 단계에서 구성 요소 트리 조작

주어진다 :

백킹 빈 값으로 인해 입력 요소를 렌더링하는 복합체 성분

<h:dataTable value="#{myList}" var="myBean"> 
    <h:column> 
    <h:inputText ... rendered="#{myBean.myValue == 1}" /> 
    <h:selectOneMenu ... rendered="#{myBean.myValue == 2}">...</...> 
    <h:inputTextarea ... rendered="#{myBean.myValue == 3}" /> 
    </h:column> 
</h:dataTable> 

문제점 :

모든 구성 요소들이 렌더링 특성이 거짓 인 경우에도, 구성 트리에서 나타나는

  • 입력 텍스트
  • selectOneMenu
  • inputTextarea

은 모든 세 가지 구성 요소와 구성 요소 트리를 구축하는 JSF를 금지 할 수 있습니까? 복원보기 단계는 적용 요청 값 단계의 내용을 알지 못하지만, 여전히 이전에이를 해석 할 수 있어야합니다./:이 동작을 달성하려면

답변

1

, JSF 컴포넌트 대신 렌더링 atribute의 <c:if> 태그를 사용하려고

<c:if test="#{ myBean.myValue == 1 }"> 
     <h:inputText .../> 
</c:if> 

인해 HTTPS에 네임 스페이스 정의를

xmlns:c="http://java.sun.com/jstl/core" 
+0

를 추가하는 것을 잊지 마세요 /stackoverflow.com/questions/3442380/jstl-cif-inside-a-jsf-hdatatable, myBean.myValue는 c : if-Tag에서 사용할 수 없으므로 사용할 수 없습니다. 주어진 코드를 데이터 테이블 캡슐화하여 반복을 언급하는 것을 잊었다. 이것은 또한 ui : repeat 일 수도 있지만이 문제는 해결되지 않습니다. –

+0

그럼''및 반복적으로 테이블 행을 만드는 것 이외의 방법은 없습니다. JSF 구성 요소로 작업하기가 쉽지 않지만 원하는 작업을 수행 할 수 있습니다. –

+0

이것이 내가 찾던 해결책이다, 대단히 감사합니다! –