2011-11-18 2 views
0

3 개의 섹션으로 나뉘어 진 화면이있는 JSF/IceFaces 애플리케이션이 있습니다. 검색 필드, 그리드 및 아래의 몇 가지 세부 정보 필드. 현재 검색 필드에 일부 데이터를 입력하고 검색 버튼 (!)을 클릭하면 그리드에 결과가 표시되고 첫 번째 결과 레코드의 세부 정보가 그리드 아래 세부 정보 필드의 백업 빈에 저장되는 특정 메소드가 호출됩니다. 이는 데이터를 세부 정보 필드에 입력하는 방식에 문제가 없음을 보여줍니다.그리드 클릭으로 변경 사항이 발생하면 JSF 구성 요소가 업데이트되지 않습니다.

그러나 나는 gridclicklistener 메서드를 사용하여 선택에 따라 세부 필드를 변경하려고합니다. 클릭 후 검색 버튼을 클릭 한 후에 호출하면 올바른 매개 변수로 동일한 메소드가 호출됩니다. 백킹 빈에서 데이터가 업데이트되지만 브라우저에서 새로 고침 버튼을 클릭해도 변경 사항이 렌더링되지 않습니다.

검색 버튼을 클릭하면 data-updating-method가 InvokeApplicationPhase.execute에서 호출되는 것으로 나타났습니다. 그리드 클릭 후이 라인에 도달하면 ApplyRequestValuesPhase입니다.

이 차이를 만들 수있는 방법과이 작업을 수행하는 방법에 대해 알고 싶습니까?

업데이트 :

나는 심지어 F5 후, 명확하게 백업 빈에서 업데이트 된 값을 볼 수 있지만 그것이 모든 화면에 반영되지 않습니다.

+0

나는이 게시물에서 많은 이해 해달라고,하지만 당신은 당신의 모델이 갱신/확인 디버깅을해야한다. – r0ast3d

+0

모델이 확실히 업데이트됩니다. 디버깅을 통해 확인했습니다 – jabal

+1

분명히 2 개의 HTTP 요청이 전송되고 있습니다. Firebug/Chrome과 같은 HTTP 추적기로이를 확인하십시오. – BalusC

답변

1

원래 문제의 원인을 모르겠습니다. icefaces와

는 업데이트를 강제 할 수 있지만 렌더러 밀어 :

http://wiki.icefaces.org/display/ICE/Getting+Started+with+ICEfaces+2#GettingStartedwithICEfaces2-icepush

+0

이 방법과 브라우저에서 F5 키를 눌러 어떤 차이가 있습니까? 필드 값이 후자의 방식으로 업데이트되지 않으면 첫 번째 도움이되는 방법은 무엇입니까? – jabal

+0

브라우저에서 페이지 새로 고침이 작동하지 않으면 밀어 넣기 메커니즘을 통해 다시 렌더링을 시작해도 문제가 해결되지 않습니다. –

관련 문제