2013-03-20 1 views
4

UI의 init() 메서드에서 getPage(). setLocation (...)을 사용할 수 있습니까? 특정 조건 하에서 사용자를 외부 사이트로 리디렉션해야합니다. 지금까지는 작동하지 않습니다 (Vaadin 7.0.2).UI.init() 메서드에서 setLocation()

당신을 위해 작동하지 않는 이상하다
@Override 
public void init(VaadinRequest request) { 
    if (myCondition) 
     getPage().setLocation("http://www.externalsite.com"); 
    else { 
     .... 
    }  
} 

답변

0

내 문제가 발견되었습니다. 이전 버전의 WidgetSet을 사용했는데이 버전은 6.X 시간에서 남겨졌으며 Vaadin 7로 다시 컴파일되지 않았습니다. 문제를 해결 한 후 정상적으로 작동합니다.

+0

좋아요. gwt 컴파일 캐쉬를 지우지 않았습니까? 저도 저를 잡았습니다. 동일한 문제를 겪고있는 다른 사람들에게 다음 답변이 도움이 될 수 있습니다. http://stackoverflow.com/a/15575783/1218899 –

1

... setLocation는 당신이 필요로하는 모든 것입니다 : 여기

코드의 예입니다. 다음은 작동하는 버전입니다 : VaadinLocationRedirect. mvn package은 위젯 세트를 빌드하고 mvn jetty:run은 호스트합니다. 문제를 파악하면 문제를 알려주십시오.

-1

Window 개체의 open(URL) 메서드를 호출하여 동일한 또는 새 브라우저 창에서 다른 URL을 열어 외부 사이트로 리디렉션 할 수있는 것처럼 보입니다.

대신 application.setExitUrl() 전화를 통해 응용 프로그램의 종료 URL을 설정 한 다음 application.close()을 호출하여 응용 프로그램을 닫을 수도 있습니다. 응용 프로그램 세션이 닫히고 브라우저가 지정된 주소로 리디렉션됩니다.

+1

-1 죄송합니다. 이 모든 접근법은 Vaadin 7에는 적용되지 않습니다.이 답변에 연결된 아이러니하게도 javadoc에는'open' 메소드가 없습니다. –

관련 문제