Javascript Thymeleaf语法在java脚本文件中不起作用

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

我使用SpringBoot向thymeleaf提供数据

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>