星空网 > 软件开发 > Java

Struts2学习笔记(八)——国际化

1、Struts2国际化介绍

国际化即internationalization简称i18n. 为了实现程序的国际化,必须先提供程序所需要的资源文件。资源文件的内容是key-value键值对。

资源文件的命名可以是如下3种形式:

  • baseName_language_country.properties
  • baseName_language.properties
  • baseName.properties

其中baseName是资源文件的基本名称,用户可以自由定义,而language和country都不可随意变化,必须是Java所支持的语言和国家。

2、国际化资源文件的分类

 Struts2提供了4种方式来加载国际化资源文件: 
 1).全局范围,可以放置在任意位置,但是必须要在struts.   baseName_language_country.properties.如message_zh_CN.properties 

1 <!--这是在com.sunny.action包下-->2 <constant name="struts.custom.i18n.resources" value="com.sunny.action.message"></constant>3 <!--这是在src下-->        4 <constant name="struts.custom.i18n.resources" value="message"></constant>        

 2).包范围,某个包下。 

   package_language_country.properties.如package_zh_CN.properties 
 3).类范围,在该类同一路径下。 
   actionName_language_country.properties.如LoginAction_zh_CN.properties 
 4).临时资源文件,在jsp页面使用<s:i18n>标记来指定classes路径下的资源文件。 

1 <s:i18n name="com.sunny.action.I18NAction">2  <s:text name="GOOD"></s:text>3 </s:i18n>

3、Struts2使用国际化消息

Struts2使用国际化消息主要在如下3种方式:

 1)在JSP页面中使用国际化消息,可以使用Struts2的<s:text…/>标签,该标签可以指定一个name属性,该属性指定了国际化资源文件中的key.

1 <s:text name="login.username"></s:text>2 <s:textfield name="username" key="login.username"></s:textfield>

还可以输出带占位符的信息,比如有一个 login.welcome = 你好{0},那么可以用下面这种方式来显示:

<s:text name="login.welcome"> <s:param>username</s:param></s:text>

 2)在Action类中使用国际化消息,可以使用ActionSupport类的getText()方法,该方法可以接受一个name参数,该参数指定了国际化资源文件中的key .

1 getText("login.username");

 还可以使用带占位符的信息。比如有一个 login.welcome = 你好{0},那么可以用下面这种方式来显示:

  

1 String params[] = {"张三"};2 String welcome = getText("login.welcome", params);

 3)在表单元Label里使用国际化信息,可以为该表单标签指定一个key属性, 该key指定了国际化资源文件中的key.

4、国际化实例

  1)创建全局国际化资源文件

Login_zh_CN.properties

1 item.name=姓名2 item.password=密码

Login_en_US.properties

1 item.name=name2 item.password=password

  2)在struts.

 1 <struts> 2   <constant name="struts.devMode" value="true" /> 3   <constant name="struts.custom.i18n.resources" value="Login" /> 4    5   <package name="default" namespace="/" extends="struts-default"> 6     <action name="i18nAction" class="com.sunny.action.I18NAction"> 7       <result>/input.jsp</result> 8     </action> 9   </package>10 11 </struts>

  3)创建jsp页面

1 <body>2 <a href="${pageContext.servletContext.contextPath}/i18nAction?request_locale=zh_CN">中文</a>3 <a href="${pageContext.servletContext.contextPath}/i18nAction?request_locale=en_US">English</a>4 <form action="${pageContext.servletContext.contextPath}/login.action">5   <s:textfield name="name" key="item.name"/><br>6   <s:textfield name="password" key="item.password"/><br>7 </form>8 </body>

  4)jsp显示界面

Struts2学习笔记(八)——国际化Struts2学习笔记(八)——国际化

 




原标题:Struts2学习笔记(八)——国际化

关键词:Struts

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

《墨西哥rfc和vat详解》:https://www.kjdsnews.com/a/1310756.html
《商业企业如何快速适应欧盟的新的rfc和vat》:https://www.kjdsnews.com/a/1310757.html
《升级vat v9.5 - 简化财务流程,为您带来更多成功》:https://www.kjdsnews.com/a/1310758.html
《利用vataliti提升行业竞争力》:https://www.kjdsnews.com/a/1310759.html
《亚马逊欧洲vat税务期限即将到期,请尽快做好准备!》:https://www.kjdsnews.com/a/1310760.html
《亚马逊vat申报:继续进行额外的增值税交易》:https://www.kjdsnews.com/a/1310761.html
深度解析:美国公司股东人数限制 :https://www.kjdsnews.com/a/1840835.html
深度解析:美国公司股东人数限制 :https://www.xlkjsw.com/news/88201.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流