2012-11-07 3 views
0

Vaadin에서 전체 페이지를 다시로드하는 쉬운 방법이 있습니까? 나는 별도의 JSP에서 IBM WebSphere의 동적 캐시에서 가져온 헤더 값에 영향을 미치는 포틀릿을 가지고 있습니다.Vaadin 포틀릿에서 페이지를 강제로 다시로드

이전 JSF 포틀릿을 Vaadin으로 이식하고 있는데, 페이지 템플리트의 새 값을 반영하기 위해 작업간에 페이지가 다시로드됩니다. 이제 전체 페이지 (포틀릿뿐만 아니라)를 다시로드하여 해당 조치가 적용된 것으로 표시해야합니다.

답변

2

당신은 자바 스크립트 호스팅 웹 페이지를 다시로드 할 수 있습니다 :

getMainWindow().executeJavaScript("window.location.reload();"); 

내가이 또한 포털에서 트릭을한다고 생각합니다.

+1

그러나이 기능은 페이지의 다른 포틀릿에 영향을 줄 수 있습니다. 예를 들어 다시 게시를 수행하는 페이지의 또 다른 JSF 포틀릿은 Vaadin 포틀릿에서 무언가를 수행하여 재로드가 발생하면 두 가지 문제가 발생합니다. 1) 매우 못생긴 IE/Firefox 경고 메시지 "이 페이지를 표시하려면 Firefox가 어떤 행동을 반복 할 정보를 보내라. "그리고 2) JSF 포틀릿을 직렬화 (JSF 특정 문제가 추측)하고 일시적인 변수로 인해 폭파하게한다. 일시적인 문제는 해결할 수 있지만 # 1은 여전히 ​​문제입니다. –

+1

예, "다시로드 할 전체 페이지"입니다. 포틀릿의 일부만로드되도록하려면 해당 포틀릿에 지원을 구축해야합니다 (또는 이에 대한 일부 일반적인 서버 특정 확장을 사용해야합니다). Vaadin 애플리케이션 포틀릿 새로 고침을 위해 vaadin.forceSync() JavaScript 메소드를 호출 할 수 있습니다. – eeq

+0

JavaScript를 통해 전체 페이지를 강제로 다시로드하는 Vaadin 7 방법은'getUI(). getPage(). getJavaScript(). execute ("window.location.reload();")' – herman

관련 문제