<s:if test="%{#session['WW_TRANS_I18N_LOCALE']==zh_CN}">
<s:datetimepicker name="date" label="%{getText('message.date')}"
displayFormat="yyyy-MM-dd" toggleType="explode" language="zh-cn"></s:datetimepicker>
</s:if>
<s:elseif test="%{#session['WW_TRANS_I18N_LOCALE']==en_US}">
<s:datetimepicker name="date" label="%{getText('message.date')}"
displayFormat="MM/dd/yyyy" toggleType="explode" language="en-us"></s:datetimepicker>
</s:elseif>
在做国际化时,#session['WW_TRANS_I18N_LOCALE']的值为空却可以进入第一个判断条件,当值为zh_CN或者en_US时却两个条件都不进,怎么回事啊?
或者有什么更好的方法让datetimepicker标签国际化?请高人指点。

解决方案 »

  1.   

    呵呵,开个玩笑, 改为equals   <s:if test="%{#session['WW_TRANS_I18N_LOCALE'].equals(@java.util.Locale@JAPAN)}">
       ...
       </s:if>
       <s:elseif test="%{#session['WW_TRANS_I18N_LOCALE'].equals(@java.util.Locale@ENGLISH)}">
       ...
       </s:elseif>
      

  2.   

    <s:if test="%{#session['WW_TRANS_I18N_LOCALE'].equals(@java.util.Locale@CHINA)}">
    <s:datetimepicker name="date" label="%{getText('message.date')}"
    displayFormat="yyyy-MM-dd" toggleType="explode" language="zh-cn"></s:datetimepicker>
    </s:if>
    <s:elseif test="%{#session['WW_TRANS_I18N_LOCALE'].equals(@java.util.Locale@ENGLISH)}">
    <s:datetimepicker name="date" label="%{getText('message.date')}"
    displayFormat="MM/dd/yyyy" toggleType="explode" language="en-us"></s:datetimepicker>
    </s:elseif>
    选择英文时还是不能显示datetimepicker.
      

  3.   

    因为“@java.util.Locale@ENGLISH”这个值是"en"不是你的"en_US"
    去查对应的locale常量
      

  4.   

    哦,放进去的值是Locale.US,改为@java.util.Locale@US就好了,太感谢你了。