GWT:从服务器端获取语言环境信息?

时间:2009-12-24 01:50:20

标签: java spring gwt spring-aop

我使用GWT和Spring / Hibernate / AOP。我使用Aspect发送通知电子邮件。 在我的一个Aspect中,我想从GWT获取当前的语言环境,以便我可以将本地化的电子邮件发送给用户。 有没有办法从客户端访问GWT Locale数据?

由于

2 个答案:

答案 0 :(得分:2)

http://code.google.com/intl/es-ES/webtoolkit/doc/latest/DevGuideI18nLocale.html

有关于GWT中Locales的信息。

我有两种方法:

1)无会话服务器:发送电子邮件的服务器中的方法从客户端接收语言环境。

假设界面有一个方法:

doStuffAndSendMails(MyObjectData myObj);

我的建议是将其转换为

doStuffAndSendMails(MyObjectData myObj, String localeStr);

以这种方式从GWT客户端调用它:

doStuffAndSendMails(myObj, LocaleInfo.getCurrentLocale().getAsString());
2)会话感知服务器:我不知道GWT是否允许使用会话......并且...我不想使用它...但如果必须,可以向服务器发送区域设置客户端并将其存储在会话中......

答案 1 :(得分:0)

您可以为每个 rpc方法调用设置区域设置,而无需在方法中添加区域设置参数。

  1. 将以下内容添加到web.xml:

    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.example.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>*.rpc</url-pattern>
    </servlet-mapping>
    
  2. 和MyServlet类将是这样的:

    public class MyServlet extends HttpServlet {
       @Override
       protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            ...
            ...
            Locale userPreferredLocale = request.getLocale();
            ...
            ...
    
        }
    }