Как отобразить сообщение об ошибке на странице входа в систему, когда пользователь не может войти с помощью Spring Boot? - PullRequest
0 голосов
/ 20 мая 2018

Сейчас я делаю проект с Spring Boot.Я хотел показать сообщение об ошибке, когда мне не удается войти.Когда я делал проект Maven, я делал это легко с BindingResult.Я выполнил несколько инструкций, чтобы выполнить задачу, которую я хотел сделать.Но я не мог найти правильного решения.Мне нужно правильное решение самым простым способом.

Здесь мой Controller класс

  @RequestMapping(value = "/loginCheck", method = RequestMethod.POST)
    public String checkLogin(@RequestParam String roll, @RequestParam String pass) {
        if (studentService.existsByRollAndPass(roll, pass)) {
            return "Welcome";
        } else {
            return "Login";
        }

И мой html файл

  <form class="form-horizontal" method="post" action="/loginCheck">

        <fieldset>


            <div class="form-group">
                <label class="col-md-4 control-label" for="textinput">Roll</label>
                <div class="col-md-4">
                    <input id="textInput" name="roll" type="text"
                           placeholder="Roll" class="form-control input-md">

                </div>
            </div>
            <!-- Password input-->
            <div class="form-group">
                <label class="col-md-4 control-label" for="password">Password</label>
                <div class="col-md-4">
                    <input id="password" name="pass" type="password"
                           placeholder="password" class="form-control input-md">

                </div>
            </div>
            <!-- Button -->
            <div class="form-group">
                <label class="col-md-4 control-label" for="login"></label>
                <div class="col-md-4">
                    <button id="login" name="login" class="btn btn-primary">Login</button>
                </div>
            </div>

        </fieldset>

    </form>

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Потратив 3 часа, я решил эту проблему.Я изменил свой html заголовок

<html xmlns:th="http://www.w3.org/1999/xhtml" lang="en">

на

<html xmlns:th="http://www.w3.org/1999/xhtml" xmlns:sf="http://www.w3.org/1999/xhtml" lang="en">

и добавил Model в Controller классе.Теперь мой класс контроллера -

 @RequestMapping(value = "/loginCheck", method = RequestMethod.POST)
    public String checkLogin(@RequestParam String roll, @RequestParam String pass, Model model) {
           if (studentService.existsByRollAndPass(roll, pass))
           {
            return "Welcome";
           }
            else
           {
               model.addAttribute("logError","logError");
               return "Login";
           }
        }

Чтобы поймать ошибку, я поместил однострочный код в файл html.

<span th:if="${logError != null}" class="error">Wrong user or password</span>

Теперь все работает нормально!

0 голосов
/ 20 мая 2018

Вы можете поместить параметр ошибки в URL, например localhost: 8080 / login? Error.Затем с помощью Thymeleaf вы можете добавить этот div в html.

<div th:if="${param.error}" class="alert alert-danger">    
    Invalid username and password.
</div>

Этот div будет отображаться, если в URL есть параметр ошибки.

Однако выможет потребоваться изменить

return "Login"

на

return "redirect:Login?error";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...