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

标签 javascript spring-mvc encoding thymeleaf

我正在使用 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/

相关文章:

java - 带有 Spring REST 服务的 LazyInitializationException

java - jsp页面编码问题

javascript - 无法引用父目录中的 XML 文件 (xmlhttp.open)

javascript - 如何从另一个 Controller 调用 Controller 功能?

javascript - 如何为表中的一组 <tr> 设置 id

java - Spring MVC 简单 Controller 示例

java - 如何使用 java Spring MVC 安排邮件

php - 使用 PHP 处理 GET 参数中的 unicode 值

php - json_decode\u2019

javascript - ClassName 样式在 react 中不起作用