我使用GWT以及Spring/Hibernate/AOP。我使用一個方面來發送通知電子郵件。 在我的一個方面,我想從GWT獲取當前的語言環境,以便我可以將本地化的電子郵件發送給用戶。 有沒有辦法從客戶端訪問GWT語言環境數據?GWT:從服務器端獲取語言環境信息?
感謝
我使用GWT以及Spring/Hibernate/AOP。我使用一個方面來發送通知電子郵件。 在我的一個方面,我想從GWT獲取當前的語言環境,以便我可以將本地化的電子郵件發送給用戶。 有沒有辦法從客戶端訪問GWT語言環境數據?GWT:從服務器端獲取語言環境信息?
感謝
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是否允許使用會話......並且...我不想使用它......但是如果你必須這樣做,你可以發送到服務器的客戶端的區域,並將其存儲在會議...
你可以爲每個RPC方法語言環境不添加區域設置參數的方法。
添加以下到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>
和MyServlet類將是這樣的:
public class MyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
...
Locale userPreferredLocale = request.getLocale();
...
...
}
}
你說,受 「從服務器端」,您文字說「從客戶端」... – skaffman 2009-12-24 10:21:39