2009-12-24 114 views
2

我使用GWT以及Spring/Hibernate/AOP。我使用一个方面来发送通知电子邮件。 在我的一个方面,我想从GWT获取当前的语言环境,以便我可以将本地化的电子邮件发送给用户。 有没有办法从客户端访问GWT语言环境数据?GWT:从服务器端获取语言环境信息?

感谢

+1

你说,受 “从服务器端”,您文字说“从客户端”... – skaffman 2009-12-24 10:21:39

回答

2

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

大约有区域设置在GWT信息。

我有两种方法:

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

假设接口有一个方法:

doStuffAndSendMails(MyObjectData myObj); 

我的建议是将其转换为

doStuffAndSendMails(MyObjectData myObj, String localeStr); 

,并调用它从GWT客户端以这样的方式

doStuffAndSendMails(myObj, LocaleInfo.getCurrentLocale().getAsString()); 

2)会话感知服务器:我不知道GWT是否允许使用会话......并且...我不想使用它......但是如果你必须这样做,你可以发送到服务器的客户端的区域,并将其存储在会议...

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(); 
         ... 
         ... 
    
        } 
    }