Javascript Thymeleaf语法在java脚本文件中不起作用
我使用SpringBoot向thymeleaf提供数据Javascript Thymeleaf语法在java脚本文件中不起作用,javascript,thymeleaf,Javascript,Thymeleaf,我使用SpringBoot向thymeleaf提供数据 var list = [(${listStudents})]; listStudents是一个学生列表,通过它我可以用HTML填充数据,工作正常,但使用thymeleaf在java脚本中获取相同的列表会在上行显示错误,如下所示: ,预计 我已将th:inline=“javascript”属性添加到HTML文件中的脚本标记中,如下所示: <script th:inline="javascript" src=&quo
var list = [(${listStudents})];
listStudents是一个学生列表,通过它我可以用HTML填充数据,工作正常,但使用thymeleaf在java脚本中获取相同的列表会在上行显示错误,如下所示:
,预计
我已将th:inline=“javascript”属性添加到HTML文件中的脚本标记中,如下所示:
<script th:inline="javascript" src="home_script.js"></script>
从昨天开始就试图解决这个问题。
提前谢谢 您应该使用
[[${listStudents}]
(因此使用2个方括号,而不是圆括号)预期的错误是var list=[(${listStudents}]的标准JavaScript语法错误代码>。要处理此问题,ThymleAF支持将其内联表达式放置在JavaScript注释中:
var list = /*[[${listStudents}]]*/ [];
由于Thymeleaf表达式位于JS注释中,请注意我们必须提供一个默认(可见)JS值,以防止JavaScript引发不同的语法错误。我使用了[]
,因为您有一个列表。您可以使用'
,或null
或任何最合适的方法。假设您的Thymeleaf被正确呈现,这个额外的语法将被忽略
有关详细信息,请参阅
但是,我认为这不会完全解决您的问题,除非您已经在应用程序中配置了JavaScript模板解析器
您使用的是:
<script th:inline="javascript" src="home_script.js"></script>
如果仍然需要使用外部JS文件,则可以在HTML文件(如上面的示例)中分配所有Thymeleaf生成的变量,然后将这些变量作为函数参数传递到JS文件中的各种JavaScript函数中
使用这种方法意味着您的JS文件不需要包含任何Thymeleaf表达式-它只接收HTML文件中JS片段的渲染值。仍然存在相同的问题。谢谢你的回答!非常感谢您的回复,并以如此详细的形式回答了我的问题。它解决了这个问题,给了我很好的学习经验。
<body>
<script th:inline="javascript">
var list = /*[[${listStudents}]]*/ [];
</script>
</body>