我在Thymeleaf中有这段代码:
charset = list(reduce(lambda x, y: set(y) | x, structures, set()))
但是我收到了解析错误
答案 0 :(得分:2)
我有两点意见:
打开代码?
某些Thymeleaf模板模式要求模板格式正确。如果是这种情况,任何未关闭的 img
标记都将导致解析错误。
当发生这种情况时,java堆栈跟踪是提供信息的:
org.xml.sax.SAXParseException: The element type "img" must be terminated by the matching end-tag "</img>".
但您在浏览器中看到的错误不是
Exception parsing document: template="home", line 19 - column 6
我最低配置的Spring Boot应用程序默认使用其中一种更严格的模式(HTML5
?XML
?),因此@ Metroids&#39;和@ ErikMD的答案给我一个解析错误,但如果我关闭图片标签,两者都有效。
如果您的情况不是这样,那么使用java堆栈跟踪更新问题可能有所帮助。
<强>管道强>
我认为所有这些撇号和加号都会使标记难以阅读(和写入)。使用literal substitutions with pipes可以说更易读(并且更不容易出错):
<img th:onmouseover="|javascript:imageName('ImageName${image.id}');|" />
甚至:
<img th:onmouseover="|imageName('ImageName${image.id}')|" />
如果你不喜欢这种方法,你也可以通过删除theImageName
之后的反斜杠来解决问题中的代码:
<img th:onmouseover="'javascript:imageName(\'theImageName' + ${image.id} +'\');'" />
答案 1 :(得分:1)
你可以尝试以下
<img th:onmouseover="'javascript:imageName(\''+ theImageName\' + ${image.id} +'\');'">
答案 2 :(得分:1)
我将其格式化为:
<tr th:each="image: ${images}" >
<img th:onmouseover="${'javascript:imageName(''theImageName' + image.id + ''');'}">
</tr>
答案 3 :(得分:0)
您可以尝试使用以下代码吗?
<img th:attr="onmouseover=${'javascript:imageName(''theImageName' + image.id + ''');'}">
这个答案的灵感来自that other SO answer,而Thymeleaf文档的相关部分是5.1: Setting the value of any attribute。