【问题标题】:Java Annotation encoding with Thymeleaf使用 Thymeleaf 进行 Java 注释编码
【发布时间】:2018-03-01 10:06:30
【问题描述】:

我的 Java 注释有一个严重的问题:

@Pattern(regexp = "(...)", message = "(...) Tekst in Polish (...)")
    private String ip;

这是使用 BindingResult 和 Thymeleaf 链接到我的视图:

<p th:if="${#fields.hasErrors('ip')}" class="error" th:errors="*{ip}"></p>

但是,即使我的整个页面都是 UTF-8 并且文本显示正确,注释的编码也不正确。我无法在我的本地机器上重现它,它只发生在我客户的服务器上。在两台服务器上,file.encoding 等于 UTF-8。 Thymeleaf 配置也设置为使用 UTF-8,Spring 也配置为使用UTF-8

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
</filter>

我该如何解决这个问题?感谢所有回复。

解决方案:我将解决方案移到下面的另一篇文章中。

【问题讨论】:

  • 欢迎您的解决方案,但最好将其作为答案提交;这样其他人就可以很容易地看到问题有解决方案。
  • @holmis83,谢谢,我在下面提供了答案。

标签: java spring encoding thymeleaf java-annotations


【解决方案1】:

解决方案: 这种奇怪的行为是由 Gradle 引起的,它以不同的编码(在我的情况下:不同于 UTF-8)构建我的 WAR。我添加: org.gradle.jvmargs='-Dfile.encoding=UTF-8' 到我的 gradle.properties 文件(位于与 build.gradle 相同的路径 - 项目根目录)。另一种解决方案是添加:

tasks.withType(JavaCompile) {
  options.encoding = 'UTF-8'
}

构建.gradle。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多