이것은 내 문제의 단순화 된 버전입니다. 패널의 일부만 다시 렌더링
<h:form id="form1">
<a4j:commandButton value="Ok" reRender="panel_1"/>
<a4j:outputPanel id="panel_1" layout="block" style="height:100px;border:solid 1px;">
Content here should be reRendered
<a4j:outputPanel id="panel_2" layout="block" style="height:50px;border:solid green;color:green;">
Content here should not be reRendered
</a4j:outputPanel>
</a4j:outputPanel>
</h:form>
사용자는 다시 렌더링되어야
<a4j:commandButton>
, 제
<a4j:outputPanel>
(panel_1)을 클릭하면. 그러나 두 번째
<a4j:outputPanel>
의 내용은 다시 렌더링하면 안됩니다.
이것이 가능합니까? (적어도
<a4j:outputPanel>
을 다른 구성 요소로 변경하십시오.)
사실 내 경우에는 적용 할 수 없습니다. 내 경우 parent가 reRendered 될 때 스타일은'display : none'으로 변경됩니다. 그 다음 아이도 숨겨집니다. 그러나 자식도 다시 렌더링되기 때문에 자식 패널 내부에 입력 한 모든 데이터 사용자는 손실됩니다. 이를 방지하기 위해 모든 입력 필드에서'a4j : support'를 사용할 수 있습니다. 그러나 나는 더 깨끗한 해결책을 찾고있다. – prageeth
@prageeth 당신이 패널을 어떻게 코딩했는지에 따라,'panel_2'는'panel_2'를 포함하여 전체'panel_1'을 다시 렌더링하기 때문에 사라집니다. 부모 컴포넌트가 숨겨져 있기 때문에 자식들이 있습니다. 나는 'panel_1'과'panel_2' 모두 독립적이어야한다고 생각합니다. 여러분의 코드에 맞는 해결책을 모르겠습니다. – jmrodrigg