我正在使用GWT和Java Google App Engine编写应用程序。当我使用devmode启动应用程序页面时,我看到一个后缀为“?gwt.codesvr = 127.0.0.1:9997”的URL。没有那个后缀,devmode似乎不起作用;因此我假设它在使用devmode时必须存在(告诉devmode插件服务器的地址与devmode UI通信,我猜)。
在我的应用程序中,我有时会在服务器端使用重定向到我自己的一个页面,或者发出一个HTML页面,其中包含指向我自己的一个页面的链接。因为我想以用户的方式浏览应用程序,在我的URL生成代码中,我查找参数“gwt.codesvr”,获取其值,然后将该后缀作为查询字符串放回到URL上;也就是说,我复制了查询字符串。我已经检查了生成的HTML,这是我所期望的:
<form class="float-right" action="/foo/id123?gwt.codesvr=127.0.0.1:9997" method="GET" >
<input class="color-red" type=submit value="Get Started" />
</form>
此类链接/重定向旨在将用户从一个页面移动到另一个页面,我认为生成此类链接将允许我浏览与用户相同但在devmode中;但是,它似乎没有起作用。特别是,当我单击链接转到下一页时,查询字符串不会显示在浏览器的URL中。也就是说,Chrome位置栏中的网址为:
http://127.0.0.1:8888/foo/id123?
我真的不知道如何点击链接并让浏览器转到相同的网址但是减去查询字符串(但不会错过“?”)。
在我的应用程序中,我在Intro.jsp中生成链接,该链接应转发到/foo/id123?gwt.codesvr=127.0.0.1:9997。我的app.yaml标题部分说明了类似的内容:
handlers:
- url: /Intro
jsp: Intro.jsp
# the internal rpc service
- url: /waga/rpc
name: WagaServiceImpl
servlet: com.waga.server.WagaServiceImpl
login: required
- url: /foo/*
name: FooServlet
servlet: com.waga.server.FooServlet
login: required
答案 0 :(得分:0)
您的问题与在操作网址中传递参数有关。这个问题已经回答here。似乎无法更改操作URL中的查询字符串。一种替代方法是使用隐藏输入来传递参数。另一种方法是使用超链接。
<a href="/foo/id123?gwt.codesvr=127.0.0.1:9997">Link</a>