هذا الأسبوع ، يأمل قادة الشركة في أن أتوصل إلى حل دولي لمشروع ، ودراسة لمدة ساعتين ، واستخدام الدعم الدولي لـ SpringMVC ، وتسجيله هنا.
المبدأ: سجل Localeresolver (Resolver) في DispatchServlet وإضافة معترض المحلي (LocalEchangeInterceptor) للكشف عن التغييرات في المعلمات والبيئة المحلية في الطلب.
سجل ResourceBundleMessagesource في سياق التطبيق ، وتحديد مسار واسم الملف الدولي في البرنامج.
1. محلل اللغة
في springMVC ، فإن محلات اللغة الشائعة الاستخدام هي
REATERER REWER: من خلال تحليل لغة قبول مركز معلومات طلب العميل ، يمكننا الحصول على اللغة الدولية التي يحتاجها المستخدم. انظر = acceptheaderlocaleresolver
Cookie Resolver: يحصل على المعلومات الدولية التي يحتاجها المستخدم عن طريق تحليل اللغة المحددة بواسطة ملف تعريف الارتباط على العميل. انظر = cookielocaleresolver
حل الجلسة: من خلال تحليل معلومات الحلقة في مجال طلب العميل ، فإنه يحصل على المعلومات الدولية المطلوبة ويخزنها في httpsession. انظر = SessionLocaleresolver
<bean id = "localeresolver"> <property name = "defaultlocale" value = "en_us" /> </bean>
2. اعتراض المنطقة
نحتاج إلى تسجيل اعتراض لمراقبة التغييرات في DispatchServlet. يمكن أن يساعدنا في اكتشاف معلمات الطلب وتغيير اللغة وفقًا للغة المقابلة لمعلمات الطلب.
<MVC: Interceptors> <bean /> </mvc: اعتراضات>
3. تخصيص الموارد الدولية
<bean id = "messagesource"> <property name = "defaultencoding" value = "utf-8" /> <property name = "basename" value = "classpath*: /applicationMessage" /> <property =
4. تدويل الصفحة
هنا ، أستخدم علامة FMT الخاصة بـ JSTL لتحقيق التدويل. يمكن للطلاب المهتمين أيضًا استخدام علامة رسالة الربيع.
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. في الخطوة الثانية نختارها هي محلل SessionResolver. لذلك في الطلب ، نحتاج إلى تقسيم اللغة = معرف لغة محددة بعد معلمة URL (على سبيل المثال: locale = ZH_CN).
ملاحظة: إذا قمت بصق عنوان URL في كل صفحة ، فسيكون ذلك مزعجًا. عادة ما يرغب المستخدمون في القيام بذلك. بعد اختيار اللغة مرة واحدة ، سيختارون هذه اللغة أولاً. لذلك ، يمكن للطلاب المهتمين التفكير في توسيع محتمل LocaleChangeInterbotor لتحقيق وظائف أكثر اكتمالا.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.