Question

I use GWT along with Spring/Hibernate/AOP. I use an Aspect to send notification emails. In one of my Aspect, I want to get the current locale from GWT,so that I can send the localized email to the user. Is there a way to access GWT Locale data from the client side?

Thanks

Was it helpful?

Solution

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

has info about Locales in GWT.

I have two approaches:

1) session-less server: the method in the server that sends the email receives the locale from the client.

Let's say the interface has a method:

doStuffAndSendMails(MyObjectData myObj);

My proposal is to convert it to

doStuffAndSendMails(MyObjectData myObj, String localeStr);

and call it from the GWT client in this way:

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

2) session-aware server: I don't know if GWT allows using session... and... I prefer not to use it... but if you have to, you can send to the server the locale of the client and store it in the session...

OTHER TIPS

You can have the locale for every rpc method call without adding a locale parameter to your methods.

  1. add following to the 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. and MyServlet class will be like this:

    public class MyServlet extends HttpServlet {
       @Override
       protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            ...
            ...
            Locale userPreferredLocale = request.getLocale();
            ...
            ...
    
        }
    }
    
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top