标签与ActionContext.getContext().getSession()

时间:2023-03-08 20:32:41

今天在做<s:if>标签中的属性值从 ActionContext.getContext().getSession().put("WW_TRANS_I18N_LOCALE",LocaleUtils.toLocale(locale_language));   中获取值进行判断是,判断结果总是为false。

JSP页面:

<s:if test='#session.WW_TRANS_I18N_LOCALE=="zh_TW"'>
  111
</s:if>
<s:else>
     222
</s:else>

判断#session.WW_TRANS_I18N_LOCALE=="zh_TW"的结果总是为false,尝试了<s:if test='#session.WW_TRANS_I18N_LOCALE=="zh_TW".toString()'>

和<s:if test='#attr.WW_TRANS_I18N_LOCALE=="zh_TW"'>均无法实现想要的结果。

在JSP页面上用 <s:property value="#session.WW_TRANS_I18N_LOCALE"/>可以得到正确的结果,可是判断就是不行。

后面使用了如下方法,解决了问题:

<% request.setAttribute("lang",ActionContext.getContext().getSession().get("WW_TRANS_I18N_LOCALE").toString()); %>
<s:if test='#request.lang=="zh_TW"'>

111
</s:if>
<s:else>
     222
</s:else>

上面各种方法不能实现的原因暂时还没搞清楚,不过已经实现了自己想要的效果。

<s:if>怎么引用页面的变量进行判断?

<s:set var="tNam"><%=Constant.AD_TEMPLATE_TYPE_COMMON%></s:set>
                        <s:if test="adStyle eq #tNam">
                            <s:if test="adTemplateList.size>0">
                                <s:iterator value="adTemplateList" id="adTemplate" status="c">
                                    <td style="text-align: center">
                                        <div>
                                            <a target="navTab" title="普通广告新增" class="tmpSelect"
                                                rel="toAddCommon"
                                                href="ad/adPackage!toAddCommon.do?adPackage.adTemplateId=<s:property value='#adTemplate.adTemplateId'/> && adStyle=<s:property value='adStyle'/>">
                                                <img id='tempList<s:property value="#c.index+1"/>'
                                                src="<s:property value='#adTemplate.adTemplatePath'/>"
                                                style="height: 254px; width: 171px;" /> <br> <span><s:property
                                                        value="#adTemplate.adTemplateName" /></span>
                                            </a>
                                        </div>
                                    </td>
                                </s:iterator>
                            </s:if>
                        </s:if>