昨日对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深度探索之标签库
博主对WebWork的标签库进行研究,在代码编写过程中遇到诸多问题。起初代码运行无显示,后登陆界面虽出现,但登陆成功提示未显示且界面未隐藏。经排查发现问题与Token有关,最终明确写条件表达式遵循一般方式即可。
326

被折叠的 条评论
为什么被折叠?



