-1

Javascript 引擎如何解释下面的代码?

我以为只有嵌入在 html 中的 JSTL 标签被解释了?

<script type="text/javascript">
    <c:choose>
        <c:when test="${fn:contains(val, 'test')}">
            alert('test);
            </c:when>
    </c:choose>
</script>
4

2 回答 2

4

JavaScript 引擎不会解释 JSTL,因为它看不到它。JSTL 在响应发送到浏览器之前在服务器端处理。JSTL/Java 方面只关心 JSTL/Java 代码 - 其他所有内容基本上都按原样在响应中传递。因此,无论您是否包含脚本元素或 JavaScript 或其他 html 元素,都将成为响应的一部分。

在您的浏览器中,如果您选择“查看页面源代码”,您将看到浏览器收到的代码——您会注意到它不包含任何 JSTL。

在您的具体示例中,响应将 - 根据 JSTL 测试的结果 - 要么包含带有该行的脚本元素,alert('test')要么仅包含一个空的脚本元素。

于 2013-02-08T10:45:51.217 回答
0

您需要运行一个 Java Servlet / JSP 服务器(即 Tomcat),它使用嵌入的 JSTL 标记来处理您的 JSP 文件。浏览器不再看到 JSTL 标记。

于 2013-02-08T10:49:10.000 回答