2010-03-28 9 views
1

몇 가지 주요 구성 요소와 각 구성 요소 트리가있는 JSF 애플리케이션이 있습니다.구성 요소의 전체 트리를 다시 렌더링 할 수 있습니까?

특정 이벤트 (값 변경)에서 해당 구성 요소 중 하나에 대해 전체 구성 요소 트리를 다시 렌더링하고 싶습니다.

예를 들어

: 나는 여기에 한 번에 구성 요소를 1, 2, 3을 다시 쓰게 할 수 있습니다

<h:panelgroup id="1"> 
<h:panelgroup id="2"> 
    <h:panelgroup id="3"> 
    <h:panelgroup/> 
<h:panelgroup/> 
<h:panelgroup/> 

<h:commandButton rerender="1*"> <--- Made up code. 

가능인가요?

다른 아이디어 - 와일드 카드로 다시 보낼 수 있습니까? (I.E - 신분증을 처음 시작하거나 포함하는 모든 구성 요소를 다시 작성하십시오 : "UpdateMe")

고마워요!

답변

3

예, 전체 트리를 다시 렌더링 할 수 있습니다.

당신은 와일드 카드 (AFAIK)를 사용할 수 없습니다,하지만 당신은 표현식을 사용할 수 있습니다 - 다시 쓰게 요소의 예를

reRender="#{yourBean.yourRenderExpression}" 
쉼표로 구분 된 목록을 반환 할 수 있습니다

(또는 Collection)에 대한.

일반적으로 UIComponent.findComponent(..) 알고리즘을 따르는 인수를 전달해야합니다.

<h:commandButton>에는 rerender 특성이 없습니다. <a4j:commandLinkreRender (대문자 사용)이거나, jsf 2에서 <f:ajax>을 사용해야합니다.

관련 문제