Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ThymalLeaf 3、attoparser、CDATA和带有脚本标记的HTML模板_Html_Templates_Thymeleaf - Fatal编程技术网

ThymalLeaf 3、attoparser、CDATA和带有脚本标记的HTML模板

ThymalLeaf 3、attoparser、CDATA和带有脚本标记的HTML模板,html,templates,thymeleaf,Html,Templates,Thymeleaf,我努力使用SpringBoot1.3.5,它依赖于旧的Thymeleaf2.x系列,试图在scripttag中传递HTML模板: <script type="text/template" id="catTmpl"> <![CDATA[ <b><%=name%></b> ]]> </script> 经过一些操作后,它被正确地传递,但使用CDATA包装呈现,这破坏了JS模板(在我的例子中,undescore.JS)

我努力使用SpringBoot1.3.5,它依赖于旧的Thymeleaf2.x系列,试图在
script
tag中传递HTML模板:

<script type="text/template" id="catTmpl">
  <![CDATA[
  <b><%=name%></b>
  ]]>
</script>
经过一些操作后,它被正确地传递,但使用CDATA包装呈现,这破坏了JS模板(在我的例子中,
undescore.JS
):

我看到一些博客,发现ThymalLeaf 3使用了不同的解析器。检查:

$ gradle dependencies
|    |    +--- org.thymeleaf:thymeleaf:3.0.6.RELEASE
|    |    |    +--- org.attoparser:attoparser:2.0.4.RELEASE
该解析器假定
script
包含CDATA,而上述代码在没有CDATA的情况下可以正常工作

什么是


Thymeleaf 3是否已准备好通过
script
(或HTML5
template
)标记传递HTML模板,而无需CDATA废话

attoparser
来自项目主页:

  • 易于使用。只需要几行代码。不再需要担心JDK的解析器API版本
  • 要快。和最快的标准解析器一样快。在许多情况下,速度更快
  • 提供强大的界面。考虑良好的可选性,行+列位置,重构原始文档的能力等。
  • 以简化您的解析体验。通过消除对验证或实体解析的担忧,这在许多情况下都是不必要的
正如在邮件列表
attoparser
中所写,attoparser设计用于与Thymeleaf一起工作

它能够解析HTML(因此无需关闭
),但解析器接受
,这是无效的HTML5。Thymeleaf 2也接受这一点,但生成有效的
,Thymeleaf 3不接受。小心

根据
attoparser
script
正文解释为CDATA,仅适用于:

默认情况下,所有这些替代品不应被视为CDATA(除非它们被明确地封装在CDATA节中),所以在以下情况下仅考虑CDATA的内容应该是一个好主意:

  • 无类型
  • 类型是以下类型之一:javascript、ecmascript、text/javascript、text/ecmascript、application/javascript、application/ecmascript
_.template($("#catTmpl").html())
$ gradle dependencies
|    |    +--- org.thymeleaf:thymeleaf:3.0.6.RELEASE
|    |    |    +--- org.attoparser:attoparser:2.0.4.RELEASE