JSP/Servlet引擎是否忽略CDATA部分中的标记

Do JSP/Servlet engines ignore tags in a CDATA section?

本文关键字:CDATA Servlet 引擎 是否 JSP      更新时间:2023-09-26

我有一个使用XHTML的jspx文件(从Spring Roo生成),所以要包含一个Javascript块,我需要将其包装在这样的CDATA部分中才能有效:

<script>
<![CDATA[
    new dijit.Tooltip(
    {
        connectId : [ "exampleId" ],
        label : "<c:out value='${exampleIdTooltip}'/>",
        position: "above"
    });
]]>
</script>

我遇到的问题是,我想CDATA正在完成它的工作,而<c:out>没有被执行,它被作为文本留在Javascript块中。如果我将文件更改为非XHTML,那么我可以删除CDATA,然后评估我的<c:out>

在XHTML文件的Javascript块中嵌入JSTL标记或EL的最佳方式是什么?

如果不应该对脚本块内的&<>进行求值,请手动转义,而不是使用CDATA。记住也要转义JSTL/EL的结果。