2011-08-24 3 views
1

안녕하세요 목적은 다음과 같이 URL에 CHAGE하는 것입니다 내 GWT 응용 프로그램에서이 코드를 가지고 :GWT 창 재 지정 문제

public void goToSignUpPage(boolean isDeployed) { 
    String url = (isDeployed == true ? "signup.html" : "signup.html?gwt.codesvr=127.0.0.1:9997"); 
    Window.Location.replace(url); 

그러나 무슨 일이이 URL로 리디렉션

http://127.0.0.1:8888/mygwtapp/signup.html?gwt.codesvr=127.0.0.1:9997

http://127.0.0.1:8888/signup.html?gwt.codesvr=127.0.0.1:9997

: 작업 URL이 있습니다

BTW, mygwtapp는 MyGwtApp.gwt.xml

<module rename-to='mygwtapp'> 

URL이 GWT 모듈 이름으로 추가됩니다 왜 어떤 아이디어에 정의라는 이름의 GWT 모듈은 무엇입니까? 이 문제를 해결할 방법이 있습니까?

답변

1

모듈 이름을 추가하지 않고 웹 응용 프로그램의 전체 URL을 얻으려면 GWT.getHostPageBaseURL()을 추가하면됩니다.

이 밖으로 시도 :

public void goToSignUpPage() { 
    String url = GWT.getHostPageBaseURL() + "signup.html"; 

    if(!GWT.isProdMode()) { 
     Window.alert("We are in development mode!"); 
     url += "?gwt.codesvr=127.0.0.1:9997"; 
    } 

    Window.Location.replace(url); 
} 

나는 또한 매개 변수 "isDeployed"를 제거하고 생산 개발 모드 인 경우 확인하는 방법 내에서 GWT.isProdMode()로 대체했습니다. paramater와

:이 도움이

public void goToSignUpPage(Boolean isDeployed) { 

    String url = GWT.getHostPageBaseURL() + "signup.html"; 

    if(!isDeployed) { 
     url += "?gwt.codesvr=127.0.0.1:9997"; 
    } 

    Window.Location.replace(url); 
} 

희망!

+1

감사합니다. 이제 작동합니다. 그러나 내 코드는 사용자 GWT.isProdMode()가 해결되지 않은 오류이므로 내 gwt 응용 프로그램이 GWT 2.0.3을 기반으로하는지 확신하지 못합니다. – xybrek

+1

아, 그게 이상합니다. 그들이 그 방법을 소개했을 때 나는 확실히 확신하지 못한다. 나는 그 질문을 볼 수있는 다른 사람들의 대답을 업데이트했다. –

+1

사실 GWT.isProdMode() 대신 GWT.isScript()를 사용했습니다. – xybrek