Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript(使用SpringMVC)的Thymeleaf编码问题_Javascript_Spring Mvc_Encoding_Thymeleaf - Fatal编程技术网

javascript(使用SpringMVC)的Thymeleaf编码问题

javascript(使用SpringMVC)的Thymeleaf编码问题,javascript,spring-mvc,encoding,thymeleaf,Javascript,Spring Mvc,Encoding,Thymeleaf,我使用的是SpringMVC+v3,当涉及到html头部定义的javascript中的一些数据时,会出现编码问题。下面是head中定义的javascript: function addtab(count) { var closetab = '<a href="" id="close'+count+'" class="close">&times;</a>'; $("#tabul").append('<li id

我使用的是SpringMVC+v3,当涉及到html头部定义的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>');
函数添加选项卡(计数){
var closetab='';
$(“#tabul”).append(“
  • 选项卡“+count+”+closetab+”
  • ”); $(“#tabcontent”).append(“

    选项卡内容“+count+”

    ”);
    问题在于,仅用于转义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>');
    
    函数添加选项卡(计数){
    var closetab='';
    $(“#tabul”).append(“
  • Tab“+count+”+closetab+”
  • ”); $(“#tabcontent”).append(“

    ”);

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

    以下是我的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中设置渲染页面的编码时,我是否缺少一些东西

    我尝试过过滤器,但这些过滤器只针对传入的数据,并阅读了许多帖子,但无法找到解决方案


    谢谢。

    ah ben tbnk。我刚刚将javascript外部化到一个单独的文件中,并将其包含在通过thymeleaf传递的html文件中,这就解决了问题


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

    我创建了一个没有thymeleaf的test spring mvc应用程序,以查看我是否会有相同的编码问题,而我没有。thymeleaf似乎在javascript代码中以某种方式是html编码html属性。继续调查这个问题。