如何在&之前获取Url字符串在“#”之后,它在eClipse Development&在GWT中部署的真实域名?

时间:2014-07-29 11:51:55

标签: gwt gwtp

好的,我正在使用eClipse开发一个GWT应用程序,

每次我在eClipse中运行我的应用程序时,它都会返回此格式的url

http://127.0.0.1:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997#!getOrder

好的,如果我将我的应用部署到真实域中,那么它就像这个http://dm.com#!getOrder

我不知道这个字符串MyProject.html?gwt.codesvr=127.0.0.1:9997在开发模式中的含义是什么?

目前我在做internationalization。输入http://127.0.0.1:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=de#!getOrder时,它会显示德语版本

但是我不希望用户自己在网址中输入&locale=de,所以我在标题页中创建了listbox,当用户选择其他语言时,对于德语,然后是网址应该在#&之前捕获网址部分附加&locale=de&然后在#之后附加网址部分。如果做得正确,则为http://127.0.0.1:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=de#!getOrder

所以我尝试Window.Location.getHost()+"&locale=de"然后网址变为http://127.0.0.1:8888/myproject/&locale=de,这在eclipse中不起作用

那么如何在&之前获取Url字符串在“#”之后,它在eClipse Development&在GWT中部署的真实域名?

2 个答案:

答案 0 :(得分:2)

这是因为Window.Location.getHost()仅返回URL的主机名和端口名。 请尝试使用Window.Location.getHref()来获取整个URL,然后拆分,完成工作并使用Window.Location.assign(使用newURL)。

答案 1 :(得分:0)

这是正确的方法

String newUrl = Window.Location.createUrlBuilder().setParameter("locale", "de").buildString();