粘贴自己用(资源文件)
其实也就几句话的:如何创建资源文件:
1.一个action类一个资源文件,action类与文件名相同,在同一个路径下
2.一个包一个资源文件
3.全局资源文件,全局资源文件需要在struts.xml中注册
1.<s:property value="getText('some.key')" />
2.<s:text name="some.key" />
3.<s:i18n name="some.package.bundle" >
<s:text name="some.key" />
</s:i18n>
4.还有就是在action类中用了getText方法了
实现国际化的原理是,服务器会根据用户的请求中不同的local也就是语言区域来选择不同的资源文件,这些所谓不同的资源文件,它们有相同的key,但每个key的值使用不同的语言,每个资源文件基名称相同,但使用不同的后缀
如app.properties,app_zh.properties,app_en.properties
app就是基名称,zh代表中文,en代表英文
一般可以先把app.properties建好,然后再根据需索建其他的文件,也就是把=后的值改不同的语言版本了
比如在页面中要显示:用户名
美国人来看,你显示 user name
中国人人来看,你显示 用户名
那么app_en.properties中就可以写user.name=user name
app_zh.properties中就可以写user.name=用户名
但非英文的值都要转成unicode
在页面上用<s:property value="getText('usrer.name')" />
不同语言的用户来,看到的语言就不一样了
你以前在这个地方直接写文本的,现在要用标签来代替
getText('usrer.name')" 这个里面的key与你的action属性是没有关系的
你叫ab.cd都行的
你叫ab.cd都行的
只要在资源文件中有这个key 如果资源文件中,写 regist.jsp.form.user.name= user name
那么页面中就是
<s:property value="getText(' regist.jsp.form.user.name')" /》<input />
Resource bundles are searched in the following order:
1. ActionClass.properties
2. Inte易做图ce.properties (every inte易做图ce and sub-inte易做图ce)
3. BaseClass.properties (all the way to Object.properties)
4. ModelDriven's model (if implements ModelDriven), for the model object repeat from 1
5. package.properties (of the directory where class is located and every parent directory all the way to the root directory)
6. search up the i18n message key hierarchy itself
7. global resource properties
--------------------编程问答-------------------- 粘贴自己用 --------------------编程问答-------------------- 顶下~
补充:Java , 非技术区