gpt4 book ai didi

javascript - javascript 的 Thymeleaf 编码问题(使用 spring mvc)

转载 作者:行者123 更新时间:2023-11-29 22:07:12 24 4
gpt4 key购买 nike

我正在使用 spring mvc + thymleaf v3,当涉及到 html head 部分中定义的 javascript 中的某些数据时,我遇到了编码问题。这是 head 中定义的 javascript:

function addtab(count) {

var closetab = '<a href="" id="close'+count+'" class="close">&times;</a>';
$("#tabul").append('<li id="t'+count+'" class="ntabs">Tab '+count+'&nbsp;&nbsp;'+closetab+'</li>');
$("#tabcontent").append('<p id="c'+count+'">Tab Content '+count+'</p>');

问题是撇号仅用于转义 html 属性的字符串,被 html 编码替换 ' 并在浏览器客户端接收时导致以下结果:

function addtab(count) {

var closetab = '<a href="" id="close&#39;+count+&#39;" class="close">&times;</a>';
$("#tabul").append('<li id="t&#39;+count+&#39;" class="ntabs">Tab '+count+'&nbsp;&nbsp;'+closetab+'</li>');
$("#tabcontent").append('<p id="c&#39;+count+&#39;">Tab Content '+count+'</p>');

请注意,只有 html 属性值撇号经过了 html 编码,html 标记的值部分中的撇号是可以的。

这是我的 web-servlet 部分,其中包含 thymeleaf 的配置:

<beans:bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".html" />
<beans:property name="characterEncoding" value="UTF-8" />
<beans:property name="templateMode" value="HTML5" />
</beans:bean>

<beans:bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
<beans:property name="templateResolver" ref="templateResolver" />
</beans:bean>

<beans:bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
<beans:property name="templateEngine" ref="templateEngine" />
<beans:property name="characterEncoding" value="UTF-8" />
<beans:property name="contentType" value="text/html; charset=UTF-8" />
</beans:bean>

关于 thymleaf 或 spring 中用于对呈现页面进行编码的设置,我是否遗漏了什么?

我尝试过过滤器,但这些过滤器仅适用于传入数据,并且阅读了很多帖子但无法找到解决方案。

谢谢。

最佳答案

啊本tbnk。我只是将 javascript 外化到一个单独的文件中,并将其包含在通过 thymeleaf 传递的 html 文件中,这解决了问题。

哎呀,这么简单的解决方案浪费了很多时间。希望这可以帮助可能遇到此问题的其他人。

关于javascript - javascript 的 Thymeleaf 编码问题(使用 spring mvc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20306870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com