WebWork深度探索之标签库(续)
2004-08-16 15:58 FantasySoft 阅读(4519) 评论(0) 编辑 收藏 举报昨日对WebWork的标签库进行了小小的研究[1],原本以为将问题解决了,谁知问题仍然是存在。如果我的代码是写成这样的话:
<ww:if test=" 'hasLogined' == false">
//显示登陆界面
</ww:if>
<ww:if test=" 'hasLogined' == true">
登陆成功!
</ww>
//显示登陆界面
</ww:if>
<ww:if test=" 'hasLogined' == true">
登陆成功!
</ww>
运行的结果是什么都没有显示。开始有点蒙了,想了想这个结果应该是正常的,毕竟在一开始的时候,ValueStatck中确实没有hasLogined这个值,又如何去做条件判断呢?遂改为:
<ww:if test=" 'hasLogined' != true">
//显示登陆界面
</ww:if>
<ww:if test=" 'hasLogined' == true">
登陆成功!
</ww>
//显示登陆界面
</ww:if>
<ww:if test=" 'hasLogined' == true">
登陆成功!
</ww>
好了,这次是登陆界面出来了,可是登陆成功以后,“登陆成功”这几个字并没有显示出来,而且登陆界面并没有如我想象那样隐藏起来。然后将代码再改为:
<ww:if test=" 'hasLogined' != true">
//显示登陆界面
</ww:if>
<ww:if test="hasLogined">
登陆成功!
</ww>
//显示登陆界面
</ww:if>
<ww:if test="hasLogined">
登陆成功!
</ww>
这下子“登陆成功”这几个字是显示出来了,而界面没有隐藏起来的问题仍然没有解决。现在我开始怀疑自己昨天的结论了。接着,我将第二个if标签中的test的值改为" ' hasLogined' ",“登陆成功”几个字果然没有显示出来。其实是我自己愚昧,昨天遇到的问题,确实是和Token有联系,由于我使用了两个单引号来表示空字符串,这正好与Token一样了,才会出现错误。但是这并不代表着,如果要将ValueStack中的值拿来做比较的话,就要用单引号将需要的值括起来。所以,在写条件表达式的时候仍然遵循一般的方式即可。代码应该是这样的:
<ww:if test="hasLogined == null">
//显示登陆界面
</ww:if>
<ww:if test="hasLogined"> //或者 <ww:if test="hasLogined == true">
登陆成功!
</ww>
//显示登陆界面
</ww:if>
<ww:if test="hasLogined"> //或者 <ww:if test="hasLogined == true">
登陆成功!
</ww>
[1] WebWork深度探索之标签库