《研磨struts2》第十二章 CRUD综合运用 之 12.4 加入国际化信息
接下来给上面的示例加上对国际化信息的支持。
先来回忆一下国际化信息的基本知识,国际化信息的知识分成三大部分:
l???????? 全局级别。在struts.xml中配置常量struts.custom.i18n.resources,来指定国际化文件的名字。
l???????? Action级别。在Action的包中建立与Action同名的国际化文件,如(UserAction就要配合UserAction.properties)。
l???????? 在页面上通过<s:text/>标签或表单标签引用。
l???????? 在继承ActionSupport类的Action中使用getText方法引用。
l???????? 在验证框架中的<message>标签中引用。
l???????? 浏览器配置。
l???????? 在struts.xml中配置常量struts.locale。
l???????? 在request中传入名为request_locale的参数。
在本节的示例中,三大部分各取一个知识点使用即可,示例将采用Action级别的国际化信息文件,在页面上通过<s:text/>标签或表单标签引用,在struts.xml中配置常量struts.locale来指定语言。
?????? 示例中,只需要支持zh_CN和en_US两种语言即可。
采用Action级别的国际化信息文件。就需要在UserAction的同包下,建立两个国际化信息文件,UserAction_zh_CN.properties和UserAction_en_US.properties。
要注意:在编写具体的国际化信息文件的时候,中文是不可以直接使用的,必须要转码后才能使用。
在国际化信息文件中,只需要给出各个页面的标题和UserModel各个属性名作为表单域前面的文字即可,因此,UserAction_en_US的内容为:
?
java代码:查看复制到剪贴板打印由于中文不能直接使用,先写出中文内容的源文件UserAction_src_zh_CN.properties,文件的内容为:
?
java代码:查看复制到剪贴板打印然后通过native2ascii,其命令为“native2ascii 源文件 目标文件”:
?
java代码:查看复制到剪贴板打印得到真正能用的UserAction_zh_CN.properties
?
java代码:查看复制到剪贴板打印在页面上使用国际化信息的方法有两种:
仅以在add.jsp上使用国际化信息为例,
?
java代码:查看复制到剪贴板打印在这个页面上,<title>内引用了<s:text name="add.title"/>来引用国际化信息;而<s:textfield key="user.userId"/>更是去掉了name属性和label属性,key属性既代表了引用user.userId这条国际化信息,又代表了提交是这个文本框名为user.userId,其他的表单标签也类似。
?????? 但是,有一个特殊的<s:submit/>标签,它作为提交按钮,并不应该被作为参数传入下一个Action,所以,它的name属性被设置为空字符串,它的key属性仍指明了到底引用哪条国际化信息。
?????? 其余的update.jsp、query.jsp和list.jsp也像add.jsp一样,请读者把握到底是显示内容,还是表单域,选用合适的方法进行引用国际化信息,这里就不再赘述了。
?????? 由于现在struts.xml中注册的语言信息为zh_CN:
?
java代码:查看复制到剪贴板打印图12.5 中文信息下的添加页面
只需要把struts.xml中的语言信息修改为en_US,而不需要修改任何其他东西,add.jsp就可以呈现在引用信息下的状态:
?
java代码:查看复制到剪贴板打印运行结果如下:
图12.6 英文信息下的添加页面
?
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4112.html】
欢迎访问http://sishuok.com获取更多内容