Spring mvc 之国际化

springmvc如何处理国际化的呢,废话不多说。

1.国际化在java里原生态的方式是使用ResouceBundle来完成的,贴上代码(其后附上项目Maven构建)。

public static void main(String[] args) {
		//中文
		ResourceBundle rb = ResourceBundle.getBundle("i18n/message", Locale.CHINESE);
		String result = rb.getString("error.username.null");
		System.out.println(result);
		
		//英文
		ResourceBundle rb1 = ResourceBundle.getBundle("i18n/message", Locale.ENGLISH);
		String result1 = rb1.getString("error.username.null");
		System.out.println(result1);
	}

 执行结果:


 

 

 

2.springmvc中使用MessageSource接口的实现类来实现的,具体实现方案也是通过java原生态的ResourceBundle来完成国际化工作

 先来看下ResouceBundle接口类文档吧

 
Spring mvc 之国际化

 

具体实现:

/**
	 * Resolves the given message code as key in the registered resource bundles,
	 * returning the value found in the bundle as-is (without MessageFormat parsing).
	 */
	@Override
	protected String resolveCodeWithoutArguments(String code, Locale locale) {
		String result = null;
		for (int i = 0; result == null && i < this.basenames.length; i++) {
			ResourceBundle bundle = getResourceBundle(this.basenames[i], locale);
			if (bundle != null) {
				result = getStringOrNull(bundle, code);
			}
		}
		return result;
	}

 

 

 

---  未完待续

 

3.在springmvc的controller中是怎么使用国际化的呢

 

 

 

4.在springmvc的页面上是如何使用国际化,以及其国际化具体怎么实现的。

你可能感兴趣的:(spring,mvc)