在JSTL / JSP中使用JavaScript变量

时间:2018-07-19 14:26:33

标签: javascript jsp jstl

我需要进行验证以查看是否应该在JSP中显示一件事或另一件事。我尝试在JavaScript中进行此验证,因为我不想在jsp中创建巨大的if语句:

var canEdit = false;
var varA = <=% JavaClass.A =%>
var varB = <=% JavaClass.B =%>
if (varA == document.myForm.paramA && varB == document.myForm.paramB) 
{
  canEdit = true;
}

我需要执行以下操作:

<c:choose>
  <c:when test="${canEdit}">
    ...do something
   </c:when>
  <c:otherwise>
    ... do another thing
  </c:otherwise>
</c:choose>

但是,似乎JSP无法找到该变量(我也尝试过使用“ param.canEdit”,request.getParameter(“ canEdit”)),因此我尝试在scriptlet中使用tag以便引用JavaClass中的枚举:

<c:set var="myVar" value="<%= JavaClass.A =%>"/>

但是我收到一条错误消息,说TLD不允许在value属性中使用表达式,所以我也不能使用它。

所以最后我发现自己在做这样的事情:

<c:choose>
   <c:when test="${myForm.paramA eq 'A' && myForm.paramB eq 'B'}">
    ...do something
   </c:when>
   <c:otherwise>
      ... do another thing
   </c:otherwise>
 </c:choose>

因此很显然,一旦JavaClass.A的值更改为另一个,就会出错。

我最后的希望是用Java进行验证,并将canEdit变量作为ActionForm中的属性传递(我正在使用Struts 1)。

是否可以将JavaScript变量传递给JSTL验证?

谢谢。

0 个答案:

没有答案