贴吧的用户状态显示,登录和未登录应该是不同的div显示,我决定用做标签。

本来应该很简单的事情,却没有我预想中的情形出现,检查后发现失效了,代码如下:

<li>${session.userName}欢迎你</li>
<li><a href="Logout.action">注销</a></li>

Struts2的官方文档中标签库介绍写的很清楚,官方示例文档如下

<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>

我现在敢打包票,这个示例无法成功运行。

OGNL有三种取值方式,%,$和#,我之前已经转载过一篇小介绍,按官方文档,这里的$是应该起作用的,但是很可惜,这儿出现了错误。

网友阿木的博客讨论了相关问题:[struts2的if标签](http://blog.sina.com.cn/s/blog_5cecbc550100ck4f. html),我没有像他那样详细测试,尝试几次后,代码修改为:

<li>${session.userName}欢迎你</li>
<li><a href="Logout.action">注销</a></li>

使用#选择符,而不是其他的,这样就可以正确运行了。


原文链接: Struts2的s:if标签的Bug和曲线使用 | Log4D

3a1ff193cee606bd1e2ea554a16353ee

欢迎关注我的微信公众号:窥豹

窥豹