Spring boot 使用Thymeleaf将数组传递给外部Javascript

Spring boot 使用Thymeleaf将数组传递给外部Javascript,spring-boot,thymeleaf,Spring Boot,Thymeleaf,控制器有以下定义: @Controller public class GreetingController { @GetMapping("/index") public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Map<String, Object> model)

控制器有以下定义:

@Controller
public class GreetingController {
    @GetMapping("/index")
    public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Map<String, Object> model) {
        String[] dataa = {"RTN", "YTN", "MTS", "RTS", "STS", "WTS"};
        System.out.println(name);
        model.put("message", "Hello world!");
        model.put("datta", dataa);
        return "index";
    }
}
@控制器
公共类迎宾控制器{
@GetMapping(“/index”)
公共字符串问候语(@RequestParam(name=“name”,required=false,defaultValue=“World”)字符串名称,映射模型){
字符串[]dataa={“RTN”、“YTN”、“MTS”、“RTS”、“STS”、“WTS”};
System.out.println(名称);
model.put(“message”,“helloworld!”);
模型。put(“datta”,dataa);
返回“索引”;
}
}
Index.html的代码如下所示

<script src="http://cdn.jsdelivr.net/webjars/jquery/2.1.4/jquery.min.js"></script>
    <script>
        var datass = /*[(${datta})]*/ [];
        var message = "[[${message}]]";
    </script>
    <script src="/js/script.js"></script>

var数据=/*[(${datta})]*/[];
var message=“[${message}]]”;

在这里,我试图将数组获取到script.js文件,但无法获取数组。但在th中:每个模板中的数据都正确呈现。因此,在将数据传递到js文件时,我遗漏了一些内容。任何建议。

要在javascript代码中使用thymeleaf,您需要使用

th:inline=“javascript”

所以正确的方法是这样的-

<script th:inline="javascript">
    // your code
     var message = "[[${message}]]";

</script>

//你的代码
var message=“[${message}]]”;
看看这个例子,这是你正在寻找的东西-

在这种情况下,消息和“数据”都未定义。若我并没有使用th:inline,至少我会在外部js文件中得到消息。此外,这里的情况是试图通过数组。请检查以下问题: