欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

Spring MVC与easyui国际化_html/css_WEB-ITnose

程序员文章站 2022-05-25 13:38:24
...

1.建立资源文件

在webapp下建立文件夹language,在其中再添加file,命名分别为language.properties,language_en.properties,language_zh_CN.properties。其中language.properties为默认资源文件。

在其中添加内容,格式如下:

language.properties

welcome=Welcome

language_en.properties

welcome=Welcome

language_zh_CN.properties

welcome=\u6b22\u8fce

其中welcome为key,在jsp中调用使用的就是这个,汉语的需要使用unicode编码(在eclipse的properties文件中输入汉语会自动转换成unicode。\u6b22\u8fce-欢迎)

2.配置springMVC

在demo-servlet.xml中添加如下

其中value即为资源文件所在,不需要后缀名.properties。

3.调用国际化

3.1 在web中调用国际化

在jsp文件头添加

      

在jsp HTML显示内容处将内容更改,如

    Welcome

更改为

    

更改为

3.2 在javascript中调用国际化

在jsp文件头中添加

      

$.messager.alert('info');

更改为

$.messager.alert('');

注意:1.标签不可以这样写""这样会出错。

2.在_en文件中key的值不可以使用\或'符号。

3.3 在java中调用国际化

在controller中使用

if(!model.containsAttribute("contentModel")){    RequestContext requestContext = new RequestContext(request);    String welcome = requestContext.getMessage("welcome");}

其中request为HttpServletRequest,model为Model。

4 解决乱码

4.1 中文输入乱码

完成了上面的步骤之后,会发现XCenter界面中输入汉语,点击确定,往数据库中写入汉语时,写入的是乱码。

解决办法如下:

在applicationContext.xml中的

更改为

注意:不要在jdbc.properties中的jdbc.url=jdbc:mysql://localhost:3306/demo之后添加?useUnicode=true&characterEncoding=UTF-8,这样是不正确的。

4.2 部分界面显示中文乱码

接下来发现在大部分界面因为添加了这句

可以正常显示中文了,但是XCenter部分界面中文显示为???,经过检查发现是因为在controller中返回值为String,而且标记为@ResponseBody,查资料发现是因为Spring MVC中@ResponseBody默认编码是ISO-8859-1(其他的都是UTF-8,谁知道为什么同一个框架中这里要用另外一种编码)。

解决办法:

@RequestMapping(value = "welcome", method = RequestMethod.POST)

中添加produces = "application/json; charset=utf-8"

变成

@RequestMapping(value = "welcome", method = RequestMethod.POST, produces = "application/json; charset=utf-8")

然后会发现在部分的tree中中文仍然显示为乱码,发现是因为返回值转换成JSON格式的原因。

解决办法:

tree的返回值格式化将

JSON.toJSONStringWithDateFormat(rs.getDefaultModel(), "yyyy-MM-dd HH:mm:ss");

  更改为

JSON.toJSONString(rs.getDefaultModel());

5 中英文切换

5.1 资源文件的中英文切换

这个比较简单,使用如下代码就行

English简体中文

5.2 easyui框架的中英文切换

easyui中有些框架(如datagrid)有些内容是框架自带的,需要在

中加入

      

那如何切换中英文呢

首先不要在

中添加上面这句,然后在主界面中加入如下js语句

      

这是使用jquery加载js文件。

接下来将项目中需要替换的内容全部用步骤3中的方法替换就行了,这样国际化就完成了。