Spring(3) 國際化
阿新 • • 發佈:2018-12-02
- 先說一下國際化是啥哈,就是java在要顯示一些東西的時候,比如顯示“吃紅燒茄子”,不是直接在程式碼裡寫入“吃紅燒茄子”, 而是寫了幾個資原始檔,裡面分別以不同語言存著有“吃紅燒茄子” ,然後再要使用的時候獲取當前使用的語言環境,再讀取出這個語言環境資原始檔,有點繞口,看不懂的童鞋就看著下面例子理解就行了,很簡單的。
- 和別的框架一樣,spring也是支援國際化的,簡單做法是在配置檔案中配置一個messageSource為id的bean。原理是ApplicationContext提供了getMessage方法,如果在當前的的配置檔案中找到了名為messageSource的例項(也就是在beans中有id為messageSource),ApplicaitonContext就會把getMessage方法交給這個例項。
- 以下是例子,具體講解在程式碼裡邊。
- 結構,超級簡單
- 兩個配置檔案
hello = welcome,{0} now = now is : {0}
hello = 歡迎你,{0} now = 現在時間是,{0}
-
測試類
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.Locale; public class SpringTest { public static void main(String []args){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); String hello = applicationContext.getMessage("hello", new String[]{"ok"}, Locale.getDefault(Locale.Category.FORMAT)); String now = applicationContext.getMessage("now", new String[]{"ok"}, Locale.getDefault(Locale.Category.FORMAT)); System.out.println(hello); System.out.println(now); } }
-
要說一下,在IDEA裡邊 有時候使用國際化檔案會出現中文亂碼,原因是編碼和解碼的方式不一致,要改一下配置。 亂碼時的操作