如何通过在浏览器地址栏中键入来在GWT应用程序中显示用户视图

时间:2011-08-21 05:16:28

标签: gwt

我有这个gwt应用说,在http://mygwtapp.com/上运行(实际上是http://mygwtapp.com/index.html

应用程序托管用户数据库,通过使用搜索视图搜索用户名进行查询,结果显示在用户结果视图中。非常有用。但是,我需要添加一种方法,只需键入http://myapp.com/user123

即可查看用户视图

我在想这里的问题,答案是服务器端解决方案。但是,如果有客户端解决方案,请告诉我。

StackOVerflow的一位老师建议格式如下: mygwtapp.com/index.html#user123

但格式很重要,例如:http://myapp.com/user123

2 个答案:

答案 0 :(得分:1)

mygwtapp.com/index.html#user123 那将是使用历史机制(http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsHistory.html),我会添加它是建议的方法。

但是,如果你坚持使用类似http://myapp.com/user123之类的东西,可能的方法之一就是让servlet接受这个请求(你可能需要切换到http://myapp.com/details?id=user123之类的东西)。 servlet将查找数据库并返回主机html。在返回之前,它会将所需的详细信息注入页面中的词典条目(http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/i18n/client/Dictionary.html)在客户端上,您可以阅读此数据并在UI上显示

答案 1 :(得分:1)

'http:// host / path #thing'中的'something'是Fragment identifier。 FI具有特定功能:如果URL中的FI部分发生更改,则不会重新加载页面,但它们仍会参与浏览器历史记录。

FI是一种浏览器机制,GWT用它来创建“页面”,即GWT应用程序中可加入书签并具有历史支持的部分。

您可以尝试使用不带#的URL(FI分隔符),但是您将拥有一个普通的URL,它会在每次更改时重新加载页面,而且不能(轻松)成为普通GWT应用程序的一部分。