如何在jQuery中检查JSTL变量

时间:2014-12-08 20:09:20

标签: javascript jquery jsp jstl struts

在我的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

2 个答案:

答案 0 :(得分:0)

你有一个拼写错误,$ requestScope.myVar}必须是$ { requestScope.myVar}(请注意第一个paranthesis)。

另外,你应该使用

$ {requestScope.myVar eq true}用于布尔比较

$ {requestScope.myVar eq&#39; true&#39;}用于字符串比较

见这里:set boolean value into variable using JSTL tags?

答案 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>