【发布时间】:2018-02-01 22:50:38
【问题描述】:
在我的 Spring MVC 项目中,我从 JSP 视图中的控制器获取一个布尔变量作为模型属性。基于布尔变量的值,我必须执行 Js 代码。所以我正在比较 if 语句中的值。但它没有给我正确的输出:
代码是这样的:
在 spring 控制器中,布尔变量是:
boolean isAdmin;
由 JSP 视图接收,我可以按如下方式访问它:
$(isAdmin)
在我的 JSP 视图中,我正在执行以下操作:
<script>
alert('${isAdmin}') // which gives the correct value .i.e : true / false
if('${isAdmin}'){
// some code
}
</script>
所以在上面的 if 语句中,如果 isAdmin 的值为 false 则不应执行 if 块,但即使值为 true 也会执行。
我还比较了布尔变量的值如下:
if('${isAdmin}' == true )
if('${isAdmin}' === true)
但是这两个也不起作用。
所以纠正我哪里做错了吗?什么是正确的比较方法?
【问题讨论】:
-
使用
'${isAdmin}' === 'true'。 -
@alexmac 谢谢。你的解决方案是正确的。
-
答案就在您的问题中。您将它用单引号括起来,这意味着它不是
true,而是'true',它是文本。 -
@ChrisG 但没有用单引号括起来会导致编译时错误
-
@ChrisG 是的,单引号的原因是EL表达式应该用引号括起来。
标签: javascript java spring jsp