struts2 + sitemesh 国际化的问题

在项目中按李刚书上所讲的国际化,用户自定义语言时,出现了下面的情况(struts2 + spring + sitemesh):

 

1  只有选择语言的页面发生了改变

 

2 只有通过action 请求返回后的页面才被轩际化了 ,而直接以h.jsp请求时,页面还是以前的国际化信息

 

 

想了一下,可能原因是以 h.jsp等以非ACTION请求的,国际资料文件没有更新, 这可能与SITEMESH有关,具体原因不明

 

原来是S2只拦截ATION,而不拦截JSP所致。

 

解决问题的方法如下:

1      <constant name="struts.action.extension" value="action,jsp" />

 

2     <package name="default" extends="struts-default">    
         <action name="*">
             <result>{1}.jsp</result>
          </action>    
        </package>

 

上面action返回的路径写法一定要这样写,不能写成其它形式,如/{1).jsp,否则找不到

 

随便提一下,修改URL地址的问题,由于struts2可以拦截了jsp后缀的请求,所以在配置了struts.action.extension常量后,可以将所有发送请求的*.action修改成*.jsp,而其它的配置不必修改。这样,浏览器地址栏里就不会显示*.action这样的请求了,看起来就很统一了

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值