كيفية الحصول على لغة الزائر في JSP باستخدام SessionLocaleResolver من Spring 3

StackOverflow https://stackoverflow.com/questions/7368863

سؤال

أحتاج إلى الحصول على لغة الزائر في صفحات JSP الخاصة بي حتى أتمكن من عرض قائمة منسدلة بشكل صحيح مع قائمة باللغات والحصول على اللغة المحددة وفقًا لموقعهم الحالي.عادةً ما أفعل شيئًا مثل رمز الترميز العام.

المشكلة ، أعتقد ، هي أن ذلك سيعطيني فقط الإعدادات المحلية وفقًا لعناوين طلب المستخدم (ما يرسله المتصفح).لكن ربما يكون المستخدم قد غير لغته / لغته ، لذلك أحتاج إلى استخدام آلية Spring التي تنظر في الجلسة أيضًا: Genacodicetagpre

ولكن بعد ذلك ليس من السهل الوصول إلى ذلك في صفحة JSP وتشغيل كود JSP معها.

أم أن هناك آلية أخرى أسهل لعرض قائمة منسدلة باللغات للمستخدم؟هل يخزن Spring الإعدادات المحلية الحالية في كائن يسهل الوصول إليه من JSP؟

هل كانت مفيدة؟

المحلول

أثناء استخدام SessionLocaleResolver ، يتم تخزين اللغة الحالية في الجلسة باستخدام اسم سمة محدد في SessionLocaleResolver Class.يتم تخزين المرجع إلى SessionLocaleResolver في الطلب باستخدام اسم سمة آخر (org.springframework.web.servlet.DispatcherServlet # LOCALE_RESOLVER_BEAN_NAME).

لا أرى طريقة سهلة للحصول على اللغة مباشرة داخل صفحة jsp بدون استخدام كود جافا.

سأجلب اللغة الحالية وأنشئ قائمة باللغات القابلة للتحديد في وحدة التحكم وأضيفها إلى النموذج.

هذا يجعل الكود قابلاً للاختبار وينقل كود جافا من jsp إلى وحدة التحكم.

نصائح أخرى

بالنسبة لنا Genacodicetagpre

نفذ الحيلة.تتبع هذه الخاصية ما تم إنشاؤه بواسطة محلل اللغة في Spring.

حل سطر واحد .. Genacodicetagpre

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top