`
ygsilence
  • 浏览: 337355 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts.custom.i18n.resources (转)

阅读更多

每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化

 

首先在struts.properties文件中加入以下内容:
struts.custom.i18n.resources=messageResource
或在struts.xml中加入
<constant name="struts.custom.i18n.resources" value="messageResource"></constant>

 

资源文件的命名格式: 名称_语言代码_国家代码. Properties
如果创建中文和英语国际化,那么资源文件名称为
messageResource_zh_CN.properties和messageResource_en_US.properties

 

1. jsp页面的国际化 
通过使用标签<s:text name="label.helloWorld"/>输出国际化
label.helloWorld为资源文件中定义的key

 


在messageResource_en_US.properties加入以下内容
label.hello=hello {0}
label.helloWorld=hello,world

在messageResource_zh_CN.properties加入以下内容
label.hello=你好 {0}
label.helloWorld=你好,世界

 

(1). <s:text name="label.helloWorld"/>
<s:property value="%{getText('label.helloWorld')}"/>
上面两个都为输出一个hello word的两种表示

 

<s:textfield name="name" key="label.helloWorld"/>
<s:textfield name="name" label="%{getText('label.helloWorld')}"/>
显示一个文本框,文本框的标题进行国际化

 

(2). 使用<s:i18n>标签指定从某个特定的资源文件中取数据
<s:i18n name="messageResource">
   <s:text name="label.helloWorld"></s:text>
</s:i18n>
指定在从messageResource取资源

 

(3).
<s:text name="label.hello">
   <s:param>callan</s:param>
</s:text>
使用带参数的资源.<s:param>可以替换label.hello=hello {0}中的{0}

 

2. Action的国际化
Action的国际化主要是通过getText(String key)方法实现的

 

 

Java代码
  1. public String execute() throws Exception {   
  2.   
  3.            
  4.   
  5.         // getText(String) string为key   
  6.   
  7.          String str1 = getText("label.helloWorld");   
  8.   
  9.          System.out.println(str1);   
  10.   
  11.            
  12.   
  13.         // 带参数的   
  14.   
  15.          String str2 = getText("label.hello",new String[]{"fjf"});   
  16.   
  17.          System.out.println(str2);   
  18.   
  19.        
  20.   
  21.         // 与上一种实现一样   
  22.   
  23.          List l = new ArrayList();   
  24.   
  25.          l.add("callan");   
  26.   
  27.          String str3 = getText("label.hello",l);   
  28.   
  29.          System.out.println(str3);   
  30.   
  31.            
  32.   
  33.         return SUCCESS;   
  34.   
  35.      }  

 

3. 参数化国际化
在messageResource_en_US.properties加入以下内容
userName=userName
userName.required=${getText('userName')} is required

 

在messageResource_zh_CN.properties加入以下内容
userName=用户名
userName.required=${getText('userName')} 不能为空

 

在Action中
String str4 = getText("userName.required");
System.out.println(str4);

 

userName.required=${getText('userName')}会取国际化的用户名

 

4. 使用校验框价时,提示信息可以国际化
   <field name="userName">
   <field-validator type="requiredstring">
    <message key=”userName.required”> </message>
   </field-validator>
</field>

 


国际化资源文件分为三种级别
(1) 全局资源文件,可以被整个应该程序引用,也就是struts.custom.i18n.resources=messageResource指定的文件
(2) 包级资源文件,每个包的根目录下可以新建资源文件,仅被当前包中的类访问.文件名格式为:package_语言代码_国家代码.
(3) Action级资源文件,仅被当前Action引用,名称为action名_语言代码_国家代码
查找顺序为从小范围到大范围, Action级优先级最大

<filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
   <init-param>
            <param-name>struts.custom.i18n.resources</param-name>
            <param-value>globalMessages</param-value>
        </init-param>
</filter>

<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

分享到:
评论

相关推荐

    struts2的struts.properties配置文件详解

    6. struts.custom.i18n.resources:这是一个附加的国际化属性文件路径,Struts2将加载这个文件中的国际化信息。 7. struts.custom.properties:这是一个附加的配置文件路径,Struts2将加载这个文件中的设置和参数。...

    struts.xml和struts.properties配置详解

    6. **struts.custom.i18n.resources**: 添加自定义的国际化资源文件,如`struts.custom.i18n.resources=myMessages`。 7. **struts.multipart.maxSize**: 设置上传文件的最大大小。 8. **struts.enable.Dynamic...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts.custom.i18n.resources Location of additional localization properties files to load 加载附加的国际化属性文件(不包含.properties后缀) struts.custom.properties Location of additional ...

    struts2的struts.properties介绍

    #### struts.custom.i18n.resources **含义**:指定要加载的附加本地化资源文件的位置。 **示例**:如果项目中有多个语言版本的需求,可以通过此属性指定不同语言的资源文件位置,如`i18n_zh_CN.properties`。 **...

    i18n的一些源码

    &lt;constant name="struts.custom.i18n.resources" value="global/messages"/&gt; ``` 这样,Struts2就会在指定的路径下查找资源文件。 4. **浏览器设置与请求上下文** - 浏览器的Accept-Language头信息会发送用户的...

    struts2_i18n

    这里,`struts.i18n.encoding`指定了资源文件的编码,`struts.action.extension`定义了动作映射的扩展名,而`struts.custom.i18n.resources`则列出了应用中所有要加载的资源包名称。 在Action类中,我们可以使用...

    struts.properties配置详解

    而`struts.custom.i18n.resources`属性则用于指定应用中用于国际化消息资源文件的基名。 总的来说,struts.properties文件是Struts2框架中不可多得的配置宝典,它提供了丰富的配置选项来帮助开发者优化和调整框架...

    struts2中的国际化(i18n)项目实例.(MyEclipse工具)

    &lt;constant name="struts.custom.i18n.resources" value="global, messages"/&gt; ``` 这里指定了`messages.properties`文件所在的包。 3. 使用Action类:在Action类中,我们可以通过`getText()`方法获取国际化文本...

    struts2 国际化 i18n

    struts.custom.i18n.resources=messageResource ``` 或者在`struts.xml`配置文件中添加: ```xml &lt;constant name="struts.custom.i18n.resources" value="messageResource"/&gt; ``` 这里的`messageResource`是你定义的...

    struts2 i18n学习记录

    &lt;constant name="struts.custom.i18n.resources" value="struts/i18n/messages"/&gt; ``` 3. 在Action或视图中使用:在Action中,你可以通过`ActionContext`获取`MessageResources`对象,然后调用`getMessage()`方法...

    Struts2配置文件

    4. **struts.custom.i18n.resources**: 添加自定义的国际化资源文件,如`struts.custom.i18n.resources=myResources`。 5. **struts.objectFactory**: 配置对象工厂,例如`struts.objectFactory=spring`使用Spring...

    struts2国际化 标签 页面 处理类

    通过设置常量`struts.custom.i18n.resources`的值为`message`,我们指定了基础名称(Basename): ```xml &lt;constant name="struts.custom.i18n.resources" value="message" /&gt; ``` 接下来是JSP页面的国际化: 1. ...

    Struts2的国际化(i18n)

    - **全局资源文件**:通常存放在src目录下,如`message_zh_CN.properties`和`message_en_US.properties`,在`struts.xml`配置文件中通过`&lt;constant&gt;`标签指定,例如`&lt;constant name="struts.custom.i18n.resources...

    国际化 struts2i18n demo

    &lt;constant name="struts.custom.i18n.resources" value="global/messages"/&gt; ``` 这将告诉Struts2在哪里查找资源文件,并指定字符编码。 3. 使用资源键:在Action类、JSP页面或FreeMarker模板中,我们可以通过`...

    struts2国际化源码以及eclipse国际化插件

    这里,`struts.i18n.encoding`设置了资源文件的编码,而`struts.custom.i18n.resources`指定了资源文件所在的包路径。 Eclipse是一款强大的Java集成开发环境,它提供了丰富的插件来增强开发体验。对于国际化支持,...

    Struts2属性文件详解

    #### struts.custom.i18n.resources 指定了Struts 2应用所需的国际化资源文件,如果有多个国际化资源文件,多个文件名间以英文逗号`,`分隔。 #### struts.diSPAtcher.parametersWorkaround 针对某些Java EE服务器不...

    struts2 -2.3.15.3-国际化功能简单实现mode

    `struts.i18n.encoding`定义了资源文件的编码,`struts.action.extension`设置了支持的请求扩展名,`struts.custom.i18n.resources`指定了资源文件的路径。 四、Action类中的国际化 在Action类中,我们可以使用`...

    魔乐科技Struts2.x框架笔记

    **国际化资源文件**:为了支持多语言环境,可以通过在`struts.properties`文件中配置`Struts.custom.i18n.resources`属性来指定资源文件。资源文件可以分为全局资源文件、包级别的资源文件和类级别的资源文件。当...

    struts 2 国际化 自动语言切换

    这里,`struts.i18n.encoding`指定字符编码,`struts.action.extension`设置Action的扩展名,`struts.custom.i18n.resources`定义了资源束的路径。 4. 获取和显示文本:在JSP页面中,使用`&lt;s:text&gt;`标签获取并显示...

Global site tag (gtag.js) - Google Analytics