<s:if>标签与ActionContext.getContext().getSession()
今天在做<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()的更多相关文章
- ActionContext.getContext().getSession()
ActionContext.getContext().getSession() 获取的是session,然后用put存入相应的值,只要在session有效状态下,这个值一直可用 ActionConte ...
- ServletActionContext.getRequest().getSession() 和 ActionContext.getContext().getSession()
ActionContext.getContext().getSession(); 这个方法获取的session是struts封装过的一个Map类型的session,只能调用put()方法缓存数据. S ...
- 关于ActionContext.getContext()的用法心得
转: 为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装, ...
- 关于ActionContext.getContext()的用法
为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装,构造了 ...
- 【转载】关于ActionContext.getContext().getParameters()获值问题
ActionContext.getContext().getParameters():一个学员问题的解答 2012-11-12 15:12:05| 分类: 默认分类 | 标签:struts2 ...
- 关于ActionContext.getContext()的使用方法心得
这个也是我在另外一位仁兄的博客中看到的,原博客的有点长,我把它精简了一下,算看起来比較方便吧. 为了避免与Servlet API耦合在一起,方便Action类做单元測试,Struts 2对HttpSe ...
- 大约ActionContext.getContext()使用体验
这是我在另一个人的博客看了,原来博客的时间长一点.我把它简化了一下,运营商,以方便它看起来. 为了避免与Servlet API耦合在一起,方便Action类做单元測试,Struts 2对HttpSer ...
- ActionContext.getContext()用法
为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装,构造了 ...
- ValueStack与ContentMap (ActionContext.getContext().getValueStack().set())
在方法 <action name="zilei" class="dtreeAction" method="zilei"> & ...
随机推荐
- 3D 转换
用X.Y.Z分别表示空间的3个维度,三条轴互相垂直.如下图 1.左手坐标系 2.透视(perspective) 电脑显示屏是一个2D平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现 ,通过 ...
- 解决aapt命令在Linux下无法运行的问题
新的一个项目,需要在Linux下执行aapt命令对apk文件进行处理 开发环境: MacBook-Pro:appSecuity zhang$ uname -a Darwin huijundeMacBo ...
- Foundation 框架
1.框架是有许多类,函数,方法,文档按照一定的逻辑组织起来的集合 2. Foundation框架是所有框架的基础 3.术语cocoa指的是foundation框架和appication kit框架 4 ...
- WebService到底是什么
WebService到底是什么 http://blog.csdn.net/wooshn/article/details/8069087 张孝祥WebService http://wenku.baid ...
- View的事件分发机制
一.点击事件的传递规则 传递事件的主要方法: public boolean dispatchTouchEvent(MotionEvent ev) 如果事件能够传递到当前View,则该方法一定会被调用. ...
- Smarty3配置
下载Smarty压缩包并解压,复制其中的libs文件夹到我们的PHP工程目录下(可将其改名为smarty).同时,在工程目录下新建三个文件夹,分别取名为templates.templates_c和sm ...
- JavaScript学习笔记(三)this关键字
this是Javascript的关键字,代表在函数运行时,自动生成一个内部对象,只能在函数内部使用.例如: function test() { this.x = 1; } 随着函数的使用场合不同,th ...
- Landsat8数据不同波段组合的用途
2013年2月11日发射的Landsat系列最新卫星Landsat8,携带有OLI陆地成像仪和TIRS热红外传感器,Landsat8的OLI陆地成像仪包括9个波段,OLI包括了ETM+传感器所有的波段 ...
- 异步方式向WPF ListBox控件中一条一条添加记录
向ListBox绑定数据源时,如果数据量过大,可能会使得程序卡死,这是就需要一条一条的向ListBox的数据源中添加记录了,下面是个小Demo: 1.前台代码,就是一个ListBox控件 <Wi ...
- CC++初学者编程教程(5) 安装codeblocks软件开发环境
Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境. Code::Blocks是开放源码软件.Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库w ...