当前位置: 首页 > 面试题库 >

在jstl中使用javascript变量

邓高韵
2023-03-14
问题内容

我想使用jstl在JavaScript中迭代HashMap。有可能这样做吗?

function checkSelection(group,tvalue){
alert(group);
alert(tvalue);

<c:forEach items="${configuredGroupMap}" var="groupMap">
    alert("aa<c:out value="${groupMap.key}"/>");
    <c:if test="${groupMap.key==group}">
        alert("t<c:out value="${groupMap.key}"/>");
        <c:if test="${groupMap.value==tvalue}">
            alert("equal");
        </c:if>
    </c:if>
</c:forEach>
}

之后不会进去

 <c:if test="${groupMap.key==group}">

问题答案:

“使用jstl在javascript中迭代HashMap”-不可能

JSTL是在服务器端由您的servlet容器执行的,对于该容器来说,Javascript只是可以跳过的文本,而JavaScript在未知JSTL的客户端中执行。服务器完成对JSTL的处理后,将从JSTL生成的HTML(如果有)与其他JavaScript
/ HTML一起呈现。

例如,如果您有这个,

<c:forEach var="myItem" items="${myCollection}">
alert('<c:out value="${myItem.id}">')
<c:if test="${myItem.id == 0}"> 
   alert("zero"); 
</c:if>
</c:forEach>

如果集合中Bean的ID为0、1、2,则服务器通过执行上述代码将以下内容呈现给客户端,

alert('0')
alert('zero')
alert('1')
alert('2')

现在,浏览器将在加载页面时为您提供4条警报(如果您有10000个项目,则将向浏览器呈现10000条警报语句)。因此,关键是您没有在JavaScript中迭代Java集合,只是在服务器上使用JSTL迭代了该集合中的大量Javascript语句,并且已将这些Javascript语句以及其他html内容提供给浏览器。



 类似资料:
  • 问题内容: 我在JSP中有一个表格。我必须基于请求对象(来自servlet)填充它。如何使用Java Script访问请求对象属性,或者可以建议我其他更好的方法来动态填充表单? 问题答案: 您需要认识到Java / JSP仅仅是HTML/CSS/JS代码生产者。因此,您要做的就是让JSP像打印JavaScript变量一样打印Java变量,并且所生成的HTML / JS代码输出在语法上是有效的。 假

  • 我试图在javascript中使用Spring变量: 我在这里找到了一些信息 所以我试着: 在浏览器的“源”选项卡中,我有如下内容: 错误是:。 我还尝试了:如果我打印,我得到了。

  • 在我的JSP中,我使用JSTL设置某个变量: 然后在jQuery中,在$(文档). Ready(函数(){...})中,我需要检查“myVar”的值。 这不管用。“if”条件的计算结果总是。

  • 我想在单击按钮时打印我的产品详细信息。 我有两个字典Watchs和TV 这里是我的javascript代码,在此我使用函数打印字典的值,并使用保存字典的名称。但当我编写时,输出是未定义的。 但当我单击“手表”按钮和时,它会将输出作为手表给我,或者单击“电视”按钮和时,它会将输出作为电视给我。 那么为什么不起作用。 null null

  • 我有一个c:forEach,它从20迭代到24 在里面,另一个c:为每个 因为我从控制器传递了多个列表,如下所示: 其中团队是一个对象,模型是一个ModelAndView。控制器似乎工作得很好,在我的JSP中,我已经使用了其中的一些数据。但我无法正确获取项目。。当I var为20时,我需要获得项目=“20”,我真的不知道再尝试什么。有一些团队的id从20到24,我已经检查过了,错误显示要么是Num

  • 问题内容: 在PHP中,您可以执行以下令人惊奇/可怕的事情: 有没有办法用Java做类似的事情? 例如,如果我有一个名称,可以得到对变量的引用吗? 问题答案: 由于ECMA-/ JavaScript是所有关于和(其也somekind的对象的),每个变量被存储在这样的被称为 可变 (或在功能方面,的情况下, 激活对象 )。 因此,如果您创建这样的变量: 在 全局范围 (= NO函数上下文)中,您将这

  • 问题内容: 是否可以使用Javascript设置PHP会话变量? 问题答案: 在JavaScript中: 在session_write.php文件中: 在HTML中:

  • 问题内容: 我有这样的地图 现在,我必须迭代此Map,然后迭代该地图内的ArrayList。如何使用JSTL做到这一点? 问题答案: 你可以使用标签来遍历数组,集合和映射。 如果是数组和集合,则每次迭代var都会立即为你提供当前迭代的项目。 对于地图,每次迭代var都会为你提供一个Map.Entry对象,该对象又具有getKey()和getValue()方法。 在你的特定情况下,实际上是a Lis