您好我的gwt应用程序中有此代码,其目的是按如下方式转换为URL:
public void goToSignUpPage(boolean isDeployed) {
String url = (isDeployed == true ? "signup.html" : "signup.html?gwt.codesvr=127.0.0.1:9997");
Window.Location.replace(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
BTW,mygwtapp是MyGwtApp.gwt.xml中定义的gwt模块
<module rename-to='mygwtapp'>
为什么URL被gwt模块名称附加的想法?有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
您只需添加GWT.getHostPageBaseURL()即可获取Web应用程序的完整网址,而不会附加到模块名称。
试试这个:
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(),以检查您是否处于生产或开发模式。
用一个参数:
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);
}
希望这有帮助!