我有一个springboot项目,需要呈现脚本元素的一部分,如下所示。(假设getMessage
函数是在其他地方定义的。)
预期产出:
<script type="text/javascript">
/*<![CDATA[*/
var message = 'Hello, John' + getMessage();
alert(message);
/*]]>*/
</script>
其中John
是Spring模型属性。
是否可以使整个'Hello, John'getMessage()
在一个Thymeleaf表达式中?或者,将Hello, John
和getMessage()
分配给单独的JavaScript变量,然后将它们连接起来是唯一的方法吗?我尝试了以下内容,但似乎内联的JavaScript表达式总是被引用。
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
var message = /*[[|'Hello, ${name}' + getMessage()|]]*/ 'Hello, John';
alert(message);
/*]]>*/
</script>
实际产出:
<script type="text/javascript">
/*<![CDATA[*/
var message = "'Hello, John' + getMessage()";
alert(message);
/*]]>*/
</script>
顺便说一下,我使用的是Thymeleaf2.1。
发现通过使用特殊注释语法/*[…]*/
我可以取消引用thymeleaf表达式后面的部分。
/*[+
var message = [[|Hello, ${name}|]] + getMessage();
+]*/
结果:
var message = 'Hello, John' + getMessage();
在胸腺叶2.1工程。
[…]
符号用于转义内联:它将内联中的所有内容转换为格式良好的Javascript字符串。
因为您还想调用某些东西,所以需要使用
[(…)]
符号:
js prettyprint-override">var message = /*[('Hello, ${name}' + getMessage())]*/ 'Hello, John';
但是,请注意,这种方式不会自动获得转义字符串,因此如果
${name}
包含单引号字符(”
),则会得到格式不正确的javascript表达式。你需要设法解决这个问题。
更多信息: Thymeleaf: Javascript内联
我有一个使用Thymeleaf的Spring启动应用程序。我正在使用字符串值设置一个模型变量,并希望在javascript中将其用作变量值。 在Java中,我执行以下操作: 我的HTML代码如下所示: JavaScript中的结果应该是: 但是我得到的是超文本标记语言: 我在超文本标记语言/JavaScript中尝试了不同的东西: 仅使用一个括号- JavaScript中没有正确的字符串。我怎样才
问题内容: 我想要一个正则表达式从HTML页面提取标题。目前我有这个: 是否有一个正则表达式仅提取 的内容,所以我不必删除标签? 问题答案: 用在正则表达式和python中检索捕获的字符串(将返回如果没有找到结果,所以 不要用直接):
我有一个带表单的thymeleaf代码片段。我想验证这张表格。 这里有个例外: ${#fields.haserrors('name')} 那么我如何将name param放入引号中呢?
问题内容: 我想要一个正则表达式从HTML页面提取标题。目前我有这个: 是否有一个正则表达式仅提取的内容,所以我不必删除标签? 问题答案: 用在正则表达式和中检索捕获的字符串(将返回如果没有找到结果,所以不要用直接):
问题内容: 考虑以下(非常简化的)示例字符串: 如您所见,它是两个值,以逗号分隔。 现在,我 可以 将其与以下内容匹配: 问题是,我必须写两次。对于小模式,这并不是很糟糕,但是对于更复杂的正则表达式,两次编写完全相同的东西会使结束模式变得庞大而繁琐。这似乎也是多余的。 我尝试使用命名捕获组: 但这没用,因为它寻找的是两次,而不是。 有什么方法可以保存模式的一部分,例如,以便以后可以在同一模式中使用
问题内容: 尝试在模板中合并多个值时遇到问题。根据Thymeleaf的说法,我应该可以将它们+一起组合在一起… 4.6合并文本 文本,无论它们是文字还是评估变量或消息表达式的结果,都可以使用+运算符轻松连接: 这是我发现有效的示例: 但是,这不是: 从逻辑上讲,这应该可以,但是不能,我在做什么错? Maven: 这是我设置TemplateEngine和TemplateResolver的方法: Th