- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的申请由几个部分组成。除了一个小的 GWT 位置之外,我想通过更改我所有应用程序中的 URL 来防止用户更改语言环境。我需要在 URL 中为该地点提供语言环境,以确保以正确的语言加载该地点。
我能做什么?
我看到以下选项:
1) 从该位置创建单独的模块,并允许在该模块的 xml 设置文件中使用 queryparam 作为语言环境源。据我了解,我需要记下类似 <set-configuration-property name="locale.searchorder" value="queryparam,cookie"/>
的内容可能它会起作用,但对于这么小的任务来说有点困难。
2) 另一种选择是手动实现所需的功能。我写了下面的代码:
String languageCode = Window.Location.getParameter("lang");
Cookies.setCookie(COOKIE_NAME, languageCode, new Date(System.currentTimeMillis() * 1000 * 3600 * 24 * 365 * 100));
Scheduler.get().scheduleDeferred(new ScheduledCommand()
{
@Override
public void execute()
{
Window.Location.reload();
}
});
它有效,但问题在于延迟调用:如果我使用它,页面加载,然后重新加载信号出现,并在页面显示后开始重新加载。用户观察到奇怪的闪烁。如果我不使用延迟调用,则不会设置 cookie,我不知道为什么(你能解释一下吗?)。
那么你将如何解决这个任务?
最佳答案
我们避免在 GWT 代码中设置 cookie。我们改为根据用户操作或设置在着陆页中设置 cookie,然后重定向到 GWT 应用程序。
第 1 步 - 登录 - JSP 页面设置 cookie 并进行身份验证。
第 2 步 - 成功时将 URL 定向到托管 GWT 应用程序的 html 文件。
第 3 步 - GWT 只需通过模块 xml 文件读取 cookie 信息即可。
在您的 .gwt.xml 文件中提供登录 jsp 正在设置的 cookie。
<set-configuration-property name="locale.cookie" value="GWT_LOCALE" />
也引用
1) GWT i18n, change metaTag and reload application
2) https://developers.google.com/web-toolkit/doc/latest/DevGuideI18nLocale
3) http://learninggwt.blogspot.in/2011/07/gwt-internationalization-and-cookies.html
关于java - 如何在不使用 queryParam 的情况下设置 GWT 语言环境 onLoad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18381155/
我是一名优秀的程序员,十分优秀!