如何在Thymeleaf模板中禁用转义URL(特别是&)?

时间:2015-11-19 10:14:14

标签: java html thymeleaf

我将bean QuoteOption传递给模型,该模型有一个名为getCachedImageUrl(url, width, height)的方法,它返回图像的URL。

我的Thymeleaf模板:

<img th:src="${quoteOption.getCachedImageUrl(baseUrl,300,200)}" />

生成

<img src="http://nitro:8080/image/nitro-resources-development/28f08e67-96c9-4bb4-8012-9e34040cc976.jpeg?width=300&amp;height=200" />

注意url参数中的&amp;! Aaaargh!我如何指示Thymeleaf 逃脱&符号?

1 个答案:

答案 0 :(得分:0)

名称为someBean的Bean:

public class SomeBean {

       public String testMethod() {
            return "http://nitro:8080/image/nitro-resources-development/28f08e67-96c9-4bb4-8012-9e34040cc976.jpeg?width=300&height=200";
        }
}

在Thymeleaf:

  <img th:src="${@applicationCache.testMethod()}" id="_Bhuwan"/>
  <button onclick="alert($('#_Bhuwan').attr('src'))">See</button>

两个案例:

  1. 在提示中显示消息:

    http://nitro:8080/image/nitro-resources-development/28f08e67-96c9-4bb4-8012-9e34040cc976.jpeg?width=300&height=200

  2. 在浏览器中查看页面源或编辑HTML。生成:

    <img src="http://nitro:8080/image/nitro-resources-development/28f08e67-96c9-4bb4-8012-9e34040cc976.jpeg?width=300&amp;height=200">

  3. 因此,在这种情况下,img标记的src属性中的实际值为http://nitro:8080/image/nitro-resources-development/28f08e67-96c9-4bb4-8012-9e34040cc976.jpeg?width=300&height=200。但是当我们尝试使用View Page源查看值或通过浏览器编辑html时,浏览器可能会将& char转义为&amp;

    经过测试 在Spring 4中,Themeleaf版本为2.1.4.RELEASE