Spring Boot Freemarker не работает с обновлением 2.2.0 - PullRequest
2 голосов
/ 24 октября 2019

После обновления spring-boot-parent до 2.2.0.RELEASE мое веб-приложение Spring Boot на основе бесплатных маркеров не может правильно обслуживать запросы.

У меня есть @Controller, который обслуживает /hello с src/main/resources/templates/hello.ftl.

@Controller
class HelloController() {
    @RequestMapping(value = ["/hello"])
    fun hello(): String {
        return "hello"
    }
}

по запросу, он просто появляется на странице с сообщением There was an unexpected error (type=Not Found, status=404)..

Ошибка трассировки стека мало что говорит. Это просто говорит org.springframework.web.servlet.resource.ResourceHttpRequestHandler: Resource not found.

Мой pom.xml в основном выглядит следующим образом:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.0.RELEASE</version>
    <relativePath/>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>
</dependencies>

Он прекрасно работал до обновления до Spring Boot 2.2.0.RELEASE .
Чтопроблема здесь?

  • Это вопрос с автоответчиком согласно правилам , чтобы предотвратить страдания других бедных душ, как я.

1 Ответ

3 голосов
/ 24 октября 2019

Это связано с критическими изменениями в Spring Boot 2.2.0 с суффиксами freemarker по умолчанию.
Файлы Freemarker теперь должны заканчиваться на .ftlh, а не .ftl.
.ftlh включает HTML-автоособенность побега

Коммит, который изменил это, можно найти здесь . Эта проблема направлена ​​на то, чтобы настройки по умолчанию для freemarker были более безопасными, что включает автоматическое экранирование HTML.

Полный список изменений для 2.2.0.RELEASE, который необходимо прочитать перед обновлением, можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...