代码改变世界

WebWork深度探索之标签库(续)

2004-08-16 15:58  FantasySoft  阅读(4519)  评论(0编辑  收藏  举报

        昨日对WebWork的标签库进行了小小的研究[1],原本以为将问题解决了,谁知问题仍然是存在。如果我的代码是写成这样的话:

<ww:if test=" 'hasLogined' == false"> 
       //显示登陆界面 
</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 test=" 'hasLogined' != true"> 
     //显示登陆界面 
</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>


         [1] WebWork深度探索之标签库