今天在做<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>

<s:if>标签与ActionContext.getContext().getSession()的更多相关文章

  1. ActionContext.getContext().getSession()

    ActionContext.getContext().getSession() 获取的是session,然后用put存入相应的值,只要在session有效状态下,这个值一直可用 ActionConte ...

  2. ServletActionContext.getRequest().getSession() 和 ActionContext.getContext().getSession()

    ActionContext.getContext().getSession(); 这个方法获取的session是struts封装过的一个Map类型的session,只能调用put()方法缓存数据. S ...

  3. 关于ActionContext.getContext()的用法心得

    转: 为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装, ...

  4. 关于ActionContext.getContext()的用法

    为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装,构造了 ...

  5. 【转载】关于ActionContext.getContext().getParameters()获值问题

    ActionContext.getContext().getParameters():一个学员问题的解答 2012-11-12 15:12:05|  分类: 默认分类 |  标签:struts2   ...

  6. 关于ActionContext.getContext()的使用方法心得

    这个也是我在另外一位仁兄的博客中看到的,原博客的有点长,我把它精简了一下,算看起来比較方便吧. 为了避免与Servlet API耦合在一起,方便Action类做单元測试,Struts 2对HttpSe ...

  7. 大约ActionContext.getContext()使用体验

    这是我在另一个人的博客看了,原来博客的时间长一点.我把它简化了一下,运营商,以方便它看起来. 为了避免与Servlet API耦合在一起,方便Action类做单元測试,Struts 2对HttpSer ...

  8. ActionContext.getContext()用法

    为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装,构造了 ...

  9. ValueStack与ContentMap (ActionContext.getContext().getValueStack().set())

    在方法 <action name="zilei" class="dtreeAction" method="zilei">   & ...

随机推荐

  1. VIM 中 查看{}是否闭合,按%跳转到下个闭合

    VIM 中 查看{}是否闭合,按%跳转到下个闭合

  2. idea git merge代码

    1.点击idea 右下角的红框区域 2.出现如下截图,第一个红框是本地dev merge,也就是说可以从从本地的dev仓库merge,第二个红框表明可以从远程的git dev merge 第三个红框表 ...

  3. JS中的Function对象

    Function是函数的原型,所有的函数都来源于Function,获得函数的方法有两种类型,分为动态函数和函数继承. 动态函数 创建一个Function语法: var func = new Funct ...

  4. protocol(协议)

      可以用来声明一大堆方法(不能声明成员变量) 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明 只要父类遵守了某个协议,就相当于子类也遵守了   //定义一个名叫MyProtocol的 ...

  5. WindowsForm 计算器

             计算器  可以分一下类 数字键 + - * / % =和撤销 归零C最简单 下面看一下计算器具体的代码 using System; using System.Collections. ...

  6. C# 3循环 for语句应用

    class 做图形 { static void Main(string[] args) { //打印下列图形 //★★★★★ //★★★★★ //★★★★★ //★★★★★ //★★★★★ // 图( ...

  7. Spring随笔 - 事务传播行为

    Spring定义了7种不同的事务传播行为: PROPAGATION_MANDATORY:表示该方法必须在事务中运行.如果当前事务不存在,则会抛出一个异常. PROPAGATION_NESTED:表示如 ...

  8. 关于Webapp导航设计的思考

    一.马蜂窝 http://m.mafengwo.com

  9. python----iter\next

    1.说明:__getitem__\setitem可以迭代,它已经不被推荐了:建议使用__iter__\next. 2.python会先去检查__iter__\next然后再去检查__getitem__ ...

  10. TCP粘包分析与处理

    http://www.cnblogs.com/liyux/p/5594423.html http://www.cnblogs.com/liyux/p/5603826.html