- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
struts2国际化和语言转换遇到的一些问题和解决方案及了解到的2.0的特性
struts2国际化和语言转换遇到的一些问题和解决方案及了解到的2.0的特性
struts2国际化和语言转换遇到的一些问题和解决方案及了解到的2.0的特性
.
分类: struts2.02010-03-05 14:201000人阅读评论(0)收藏举报
国际化和语言转换 一些基本代码步骤 我这里就不写了,网上很多
我只说做的时候遇到的一些关键性问题:
1.perties这个资源文件中
struts.custom.i18n.resources=resources.Messages
这条语句的意思是什么? 其实很简单,resources是路径的名字,在项目中的体现是resources包下的perties
文件,这个包下不仅是这个文件,还有你的语言包格式为 名称_语言代码_国家代码 如: Messages_zh_CN.properties和Messages_en_US.properties
关于资源文件转码问题推荐一个Eclipse插件叫Arbitrary url为http://propedit.sourceforge.jp/eclipse/updates/
语言切换原理:它的原理为在执行Action方法前,i18n拦截器查找请求中的一个名为request_locale的参数。如果其存在,拦截器就将其作为参数实例化Locale对象,并将其设为用户默认的区域(Locale),最后,将此Locale对象保存在session的名为“WW_TRANS_I18N_LOCALE”的属性中 (这里也就是说session中保存的WW_TRANS_I18N_LOCALE这个值决定了这个请求的语言包)
代码演示:
public class SwitchLanguageAction extends BaseAction {
private String referer;
private static Logger logger = Logger.getLogger(SwitchLanguageAction.class);
public String execute() throws Exception {
String request_locale = request.getParameter(request_locale);
if (request_locale.equals(zh_CN))
request.getSession().setAttribute(WW_TRANS_I18N_LOCALE,
java.util.Locale.CHINA);
if (request_locale.equals(en_US))
request.getSession().setAttribute(WW_TRANS_I18N_LOCALE,
java.util.Locale.US);
Cookie cookie = new Cookie(LanguageGlobals.USER_SESSION_NAME + _LANG,
request_locale);
cookie.setMaxAge;
cookie.setPath(/);
response.addCookie(cookie);
logger.debug(request_locale);
String ref = request.getHeader(referer);
if (null != referer) {
setReferer(ref);
}
return SUCCESS;
}
public String getReferer() {
return referer;
}
public void setReferer(String referer) {
this.referer = referer;
}
}
上面的代码中有个referer属性: 它是记录之前的url 请看我的配置文件
action name=language class=com.szc.Action.SwitchLanguageAction
result name=success${referer}/result
/action
这里的${referer}用到了动态result,它指定的是action的属性
language.action?request_locale=zh_CN 这是我的页面url 根据之前的经验参数的n
您可能关注的文档
最近下载
- 22G101 三维彩色立体图集.docx VIP
- 2022基于数字孪生的新型智慧城镇建设技术规范 (第1部分:数字城镇底座).docx VIP
- 高考英语词汇3500电子版.pdf VIP
- 稠油油藏电磁波与微波加热技术.ppt VIP
- 康力D10D634-电气原理图KLS-MCD-02A-2019.pdf
- 新生儿溶血病(HDN)的免疫血液学实验.pptx VIP
- (高清版)DB44∕T 2478-2024 《加氢站站控系统技术要求》.pdf VIP
- ERP系统培训课件最新完整版本.pptx VIP
- SY∕T 7300-2016- 陆上石油天然气开采含油污泥处理处置及污染控制技术规范.pdf VIP
- 企业通用全面预算表格模板.pdf VIP
文档评论(0)