在我的JSP中,我使用JSTL设置某个变量:
<c:set var="myVar" value="true" scope="request" />
然后在jQuery中,在$(document).ready(function(){..})中,我需要检查&#34; myVar&#34;的值。
<script type="text/javascript">
$(document).ready(function() {
if ("$(requestScope.myVar}") {
// Case 1
}
else {
// Case 2
}
});
</script>
这不起作用。 &#39;如果&#39;条件始终计算为TRUE
。
答案 0 :(得分:0)
你有一个拼写错误,$
( requestScope.myVar}
必须是$
{ requestScope.myVar}
(请注意第一个paranthesis)。
另外,你应该使用
$
{requestScope.myVar eq true}用于布尔比较
和
$
{requestScope.myVar eq&#39; true&#39;}用于字符串比较
答案 1 :(得分:0)
您设置的变量是服务器端,因此在呈现页面后您的javascript将显示为
if ("true") {
// Case 1
}
else {
// Case 2
}
要在页面呈现时检查服务器端的变量,您应该使用JSTL
<c:choose>
<c:when test="${requestScope.myVar}">
// Case 1
</c:when>
<c:otherwise>
// Case 2
</c:otherwise>
</c:choose>