Action级,package级,application级的国际化(tomcat容器的web.xml,project的web.xml,默认action跳转)

application的国际化常用)

tomcat容器的web.xml:由于一个服务器上通常都不只运行一个网站,这个文件的配置适合所有的在该服务器上的网站,当某个网站没有这个文件时,该文件就可以对这个网站(项目)进行配置。

projectweb.xmljavaEEweb project中通常都要配置该文件,不同的架构下的项目web.xml的也不太相同。如果某个项目的web.xml文件不存在,那么这个项目使用的是web容器下的web.xml

默认action跳转:在struts2中,通常在一个包中设置如下的一句话:<default-action-ref name="refaction" />表示当找不到对应的action时,就使用默认的action。那么这些文件是按什么顺序工作的呢?假设:一个网站的域名为www.baidu.com(假设这个网站是javaEE架构的),这个网站的有一个包的名字是:/,在这下面有一个默认action<default-action-ref name="refaction" />。当我们在浏览器地址栏输入www.baidu.com时,也就是发送了一个浏览请求,首先会在工程下的web.xml 

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

如果该web.xml不存在,在在tomcatweb.xml下找:

    <welcome-file-list>

         <welcome-file>index.jsp</welcome-file>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>  

</welcome-file-list>

如果找不到<welcome-file>相对应的文件,怎到struts2的配置文件struts.xml下寻找名字为/包下的<default-action-ref name="refaction" />

Action级的国际化(只能在action下可以使用,与action在同一目录):将国际化文件同对应的action放在同一个包下,同时国际化文件的名字应该与action的名字一样。如果action的名字是:LoginAction那么对应的国际化文件名字为:LoginAction_zh_CN.properties, LoginAction_en_US.properties。在jsp页面中通过如下形式取出:<s:property value="getText('login.username')"/><input name="username" type="text"/>这儿的valueObjectstruts将其转换成ognl表达式

<s:submit name="submit" value="%{getText('login.login')}"></s:submit>这儿的valueString,需要用%将其转换为正在表达式。

Action正确的读到了国际化文件,在Action的值栈中会出现

texts

java.util.PropertyResourceBundle@3b55a5

getText()方法在ActionSupport中有定义。

package级的国际化(不常用,与action在同一目录下),国际化文件命名为:package_zh_CN.propertiespackage_en_US.properties,对应包下的所有的action都可以用。当然还得再struts.xml文件中配置:    <constant name="struts.custom.i18n.resources" value="action" />value是国际化资源文件的名字。

application级的国际化(常用,放在src下),国际化文件可以任意命名,如:myfilename_zh_CN.propertiesmyfilename_en_US.properties,可以被所有包下的所有action使用。当然还得再struts.xml文件中配置: <constant name="struts.custom.i18n.resources" value="myfilename" />value是国际化资源文件的名字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值