问题
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
回答1:
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...
回答2:
You can have the locale for every rpc method call without adding a locale parameter to your methods.
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>
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(); ... ... } }
来源:https://stackoverflow.com/questions/1956299/gwt-get-locale-information-from-server-side