Javascript 引擎如何解释下面的代码?
我以为只有嵌入在 html 中的 JSTL 标签被解释了?
<script type="text/javascript">
<c:choose>
<c:when test="${fn:contains(val, 'test')}">
alert('test);
</c:when>
</c:choose>
</script>
Javascript 引擎如何解释下面的代码?
我以为只有嵌入在 html 中的 JSTL 标签被解释了?
<script type="text/javascript">
<c:choose>
<c:when test="${fn:contains(val, 'test')}">
alert('test);
</c:when>
</c:choose>
</script>
JavaScript 引擎不会解释 JSTL,因为它看不到它。JSTL 在响应发送到浏览器之前在服务器端处理。JSTL/Java 方面只关心 JSTL/Java 代码 - 其他所有内容基本上都按原样在响应中传递。因此,无论您是否包含脚本元素或 JavaScript 或其他 html 元素,都将成为响应的一部分。
在您的浏览器中,如果您选择“查看页面源代码”,您将看到浏览器收到的代码——您会注意到它不包含任何 JSTL。
在您的具体示例中,响应将 - 根据 JSTL 测试的结果 - 要么包含带有该行的脚本元素,alert('test')
要么仅包含一个空的脚本元素。
您需要运行一个 Java Servlet / JSP 服务器(即 Tomcat),它使用嵌入的 JSTL 标记来处理您的 JSP 文件。浏览器不再看到 JSTL 标记。