Thymeleaf не может разрешить атрибут fla sh модели в рабочем примере - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть простая домашняя страница, которая должна отображать простое сообщение «Успех» после регистрации

home.html

<!DOCTYPE html>
<html lang="en"
    xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="/register">Register</a>
<span th:text="${message}"></span>
</body>
</html>

registration.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Registration</title>
</head>
<body>
<form method="post" action="/register">
    <input name="username" type="text">
    <input name="password" type="password">
    <input type="submit" name="register" value="Register">
</form>
</body>
</html>

Страница регистрации принимает имя пользователя и пароль, а затем отправляет запрос на контроллер, обрабатывающий страницу «/ register». В методе register требуется объект RedirectAttributes для присоединения атрибута fla sh с именем message со строкой success.

Controller.java

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

@org.springframework.stereotype.Controller
public class Controller {

    @GetMapping("/")
    public String home() {
        return "home";
    }

    @GetMapping("/register")
    public String registerPage() {
        return "registration";
    }

    @PostMapping("/register")
    public String register(@ModelAttribute Registration registration, RedirectAttributes redirectAttributes) {
        redirectAttributes.addFlashAttribute("message", "success");
        return "redirect:/";
    }
}

Registration.java

package com.example.demo;

import lombok.Data;

@Data
public class Registration {
    String username;
    String password;
}

Приложение работает, как и ожидалось, однако тимилеф не может разрешить переменную message, поэтому она подчеркнута красным

<span th:text="${message}"></span>
...