Thymeleaf-取消内联JavaScript表达式的一部分的引号

Thymeleaf-取消内联JavaScript表达式的一部分的引号,javascript,java,spring,thymeleaf,Javascript,Java,Spring,Thymeleaf,我有一个springboot项目,需要呈现脚本元素的一部分,如下所示。(假设getMessage函数是在其他地方定义的。) 预期产出: /**/ 其中,John是弹簧模型属性 是否可以将整个'Hello,John'+getMessage()放在一个表达式中?或者,将Hello,John和getMessage()分配给单独的JavaScript变量,然后将它们连接起来是唯一的方法吗?我尝试了以下类似的方法,但似乎内联JavaScript表达式总是被引用 /**/ 实际产量: /**/

我有一个springboot项目,需要呈现脚本元素的一部分,如下所示。(假设
getMessage
函数是在其他地方定义的。)

预期产出:


/**/
其中,
John
是弹簧模型属性

是否可以将整个
'Hello,John'+getMessage()
放在一个表达式中?或者,将
Hello,John
getMessage()
分配给单独的JavaScript变量,然后将它们连接起来是唯一的方法吗?我尝试了以下类似的方法,但似乎内联JavaScript表达式总是被引用


/**/
实际产量:


/**/

顺便说一下,我使用的是Thymeleaf 2.1。

[[…]]
符号用于转义内联:它将内联的所有内容转换为格式良好的Javascript字符串

由于您还想调用某个东西,因此需要使用
[(…)]
表示法的非内联版本:

var message=/*[('Hello,${name}'+getMessage())]*/'Hello,John';
但是,请注意,这种方式不会自动获得转义字符串,因此如果
${name}
包含单引号字符(
),则会得到格式不正确的javascript表达式。你需要设法解决这个问题


更多信息:

发现通过使用特殊的注释语法
/*[+…+]*/
我可以将thymeleaf表达式后面的部分解压缩

/*[+
var message = [[|Hello, ${name}|]] + getMessage();
+]*/
结果:


var message = 'Hello, John' + getMessage();


适用于Thymeleaf 2.1。

谢谢
/*[(|'你好,${name}'+getMessage()|)]*/
(带管道)似乎是一条出路。尽管如此,我应该澄清我使用的是Spring Boot 1.5,它依赖于Thymeleaf 2.1,Thymeleaf 2.1似乎不理解
[(…)]
符号。
[(…)]
符号似乎是Thmeleaf 3的新特性@DeokkeeMin,管道是最重要的,所以我想你应该用它来代替
字符,而不仅仅是围绕着这个东西。想一想,试着不使用
[()]
符号。使用不带
[…]]
[(…)]
的管道(即
/*|…|*/
)不起作用。显然,百里香并没有把它当作一种表达。