今週、同社のリーダーは、プロジェクトのための国際的なソリューションを考え出し、2時間勉強し、SpringMVCの国際的なサポートを使用し、ここに記録することを望んでいました。
原則:DispatchServletにLocaleresolver(エリアリゾルバー)を登録し、ロケールインターセプター(LocalEchangeInterceptor)を追加して、リクエストのパラメーターとロケール環境の変更を検出します。
アプリケーションのコンテキストでResourceBundleMessagesOrceを登録し、プログラム内の国際化されたファイルのパスと名前を定義します。
1。言語パーサー
SpringMVCでは、一般的に使用される言語パーサーです
ヘッダーリゾルバー:クライアントリクエストヘッダー情報センターの受け入れ言語を解析することにより、ユーザーが必要とする国際言語を取得できます。 see = acceptheaderlocaleresolver
Cookie Resolver:クライアントのCookieが指定したロケールを解析することにより、ユーザーが必要とする国際情報を取得します。 see = cookielocaleresolverを参照してください
セッションリゾルバー:クライアントリクエストドメインにループ情報を解析することにより、必要な国際情報を取得し、httpsessionで保存します。 secesslocaleresolverを参照してください
<bean id = "localeresolver"> <プロパティ名= "defaultlocale" value = "en_us" /> < /bean>
2。エリアインターセプター
DispatchServletのエリアの変更を監視するためのインターセプターを登録する必要があります。要求パラメーターを検出し、要求パラメーターに対応する言語に従ってロケールを変更するのに役立ちます。
<MVC:インターセプター> <bean /> < /mvc:インターセプター>
3。国際的なリソースの割り当て
<bean id = "messagesource"> <プロパティ名= "defaultencoding" value = "utf-8" /> <プロパティ名= "basename" value = "classmessage*: /> <プロパティ名=" usecodeasdefaultmessage "value =" true " /> < /bean>
4。ページの国際化
ここでは、JSTLのFMTタグを使用して国際化を実現します。興味のある学生は、スプリングメッセージタグを使用することもできます。
1)タグライブラリを紹介します<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%>
2)国際ファイルリソース名を指定<FMT:SetBundle Basename = "ApplicationMessage" />
3)国際リソースファイルのキーを介してファイル情報を読み取ります。 <fmt:message key = "security.account.number" />
5。選択した2番目のステップでは、SessionResolverパーサーです。そのため、リクエストでは、URLパラメーターの後にlocale =特定の言語識別子をスプライスする必要があります(たとえば、locale = zh_cn)。
注:各ページにURLをスプライスすると、面倒になります。通常、ユーザーはそれをやりたいと思うでしょう。一度言語を選択した後、彼らは最初にこの言語を選択します。したがって、興味のある学生は、より完全な機能を実現するために、LocalEchangeInterceptorを拡張することを検討できます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。