为什么能在javascript中嵌入jstl?

时间:2013-02-08 10:39:20

标签: javascript html jstl

Javascript引擎如何解释以下代码?

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

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