SpringBoot RedirectAttributes не отображается в тимелии - PullRequest
0 голосов
/ 28 января 2020

код контроллера:

@Controller
@RequestMapping("/admin")
@AllArgsConstructor
public class AdminController {
    private AdminUserService adminUserService;

    @PostMapping("/login")
    public String login(@RequestParam String username, @RequestParam String password, @RequestParam String kaptcha, RedirectAttributes attributes, HttpSession session) {
        String errorMsg;
        if (StringUtils.isEmpty(kaptcha)) {
            errorMsg = "kaptcha can't be empty";
            attributes.addFlashAttribute("errorMsg", errorMsg);
            return "redirect:admin/login";
        }
        if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
            errorMsg = "username or password can't be empty";
            attributes.addFlashAttribute("errorMsg", errorMsg);
            return "redirect:admin/login";
        }
        String code = (String) session.getAttribute(Const.kapchaCode);
        if (StringUtils.isEmpty(code) || !kaptcha.equals(code)) {
            errorMsg = "invalid kaptcha code";
            attributes.addFlashAttribute("errorMsg", errorMsg);
            return "redirect:admin/login";

        }
        AdminUser login = adminUserService.login(username, password);
        if (login == null) {
            errorMsg = "invalid username password combination";
            attributes.addFlashAttribute("errorMsg", errorMsg);
            return "redirect:admin/login";
        }

        session.setAttribute("loginUser", login.getAlias());
        session.setAttribute("loginUserId", login.getAdminUserId());
        return "redirect:/admin/index";

    }

шаблон:

<div class="form-group">
                    <div th:if="${errorMsg}" class="alert alert-danger" th:text="${errorMsg}"></div>
                </div>

errorMsg не будет отображаться при возникновении ошибки. Я проверил, что errorMsg действительно попадает в RedirectAttributes, но он не будет отображаться на странице;

1 Ответ

0 голосов
/ 28 января 2020

Пожалуйста, установите значение в перенаправленном контроллере admin/login. Пример

@RequestMapping(value = "admin/login", method = RequestMethod.GET)
public String OtherController(@ModelAttribute("errorMsg") String errorMsg, Model model) {
    model.addAttribute("errorMsg", errorMsg);
    return "login";//template name
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...