สัปดาห์นี้ผู้นำ บริษัท หวังว่าฉันจะได้รับโซลูชันระหว่างประเทศสำหรับโครงการศึกษาเป็นเวลาสองชั่วโมงและใช้การสนับสนุนระหว่างประเทศของ SpringMVC และบันทึกไว้ที่นี่
หลักการ: ลงทะเบียน localesolver (ตัวแก้ไขพื้นที่) ใน dispatchServlet และเพิ่ม locale interceptor (localeChangeNceptor) เพื่อตรวจจับการเปลี่ยนแปลงในพารามิเตอร์และสภาพแวดล้อมในสถานที่ในคำขอ
ลงทะเบียน ResourceBundleMessageSource ในบริบทแอปพลิเคชันกำหนดเส้นทางและชื่อของไฟล์สากลในโปรแกรม
1. ตัวแยกวิเคราะห์ภาษา
ใน SpringMVC ตัวแยกวิเคราะห์ภาษาที่ใช้กันทั่วไปคือ
ส่วนหัว Resolver: โดยการแยกวิเคราะห์ภาษาที่ยอมรับของศูนย์ข้อมูลส่วนหัวของลูกค้าขอให้เราได้รับภาษาระหว่างประเทศที่ผู้ใช้ต้องการ ดู = acceptheaderlocaleresolver
Cookie Resolver: รับข้อมูลระหว่างประเทศที่ผู้ใช้ต้องการโดยการแยกวิเคราะห์สถานที่ที่ระบุโดยคุกกี้บนไคลเอนต์ ดู = cookielocaleresolver
Session Resolver: โดยการแยกวิเคราะห์ข้อมูลลูปในโดเมนคำขอลูกค้าจะได้รับข้อมูลระหว่างประเทศที่จำเป็นและเก็บไว้ใน HTTPSESSION ดู = SessionLocaleresolver
<bean id = "localesolver"> <property name = "defaultLocale" value = "en_us" /> </ebean>
2. สกัดกั้นพื้นที่
เราจำเป็นต้องลงทะเบียน Interceptor สำหรับการเปลี่ยนแปลงพื้นที่การตรวจสอบใน DispatchServlet มันสามารถช่วยเราตรวจจับพารามิเตอร์การร้องขอและเปลี่ยนสถานที่ตามภาษาที่สอดคล้องกับพารามิเตอร์คำขอ
<MVC: interceptors> <bean /> </mvc: interceptors>
3. การจัดสรรทรัพยากรระหว่างประเทศ
<bean id = "MessagesOrce"> <property name = "DefaultEncoding" value = "UTF-8" /> <property name = "basename" value = "classPath*: /ApplicationMessage" /> <property name = "useCodeasDefaultMessage" value = "true" /> </ebean>
4. ความเป็นสากลของหน้า
ที่นี่ฉันใช้แท็ก FMT ของ JSTL เพื่อให้ได้ความเป็นสากล นักเรียนที่สนใจสามารถใช้แท็กข้อความสปริงได้
1) แนะนำไลบรารีแท็ก <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%>
2) ระบุชื่อทรัพยากรไฟล์ระหว่างประเทศ <fmt: setBundle basename = "ApplicationMessage" />
3) อ่านข้อมูลไฟล์ผ่านคีย์ของไฟล์ทรัพยากรระหว่างประเทศ <fmt: คีย์ข้อความ = "security.account.number" />
5. ในขั้นตอนที่สองที่เราเลือกคือตัวแยกวิเคราะห์เซสชั่น ดังนั้นในการร้องขอเราจำเป็นต้องแยก locale = ตัวระบุภาษาเฉพาะหลังจากพารามิเตอร์ URL (ตัวอย่างเช่น: locale = zh_cn)
หมายเหตุ: หากคุณแยก URL ในแต่ละหน้ามันจะลำบาก โดยปกติผู้ใช้จะต้องการทำ หลังจากเลือกภาษาหนึ่งครั้งพวกเขาจะเลือกภาษานี้ก่อน ดังนั้นนักเรียนที่สนใจสามารถพิจารณาขยายการรับรู้ LocaleChangePeter เพื่อให้ได้ฟังก์ชั่นที่สมบูรณ์มากขึ้น
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น