Как отправить данные с одной страницы на другую, используя Spring и Thymeleaf - PullRequest
0 голосов
/ 07 апреля 2020

Я знаю, что этот вопрос кажется дублированным, но я прочитал все предложения и до сих пор не решил свою проблему. У меня есть простая форма для входа в систему, и я хочу передать набранное имя пользователя на другую страницу при нажатии newUserBtn, но я все еще получаю следующую ошибку

This application has no explicit mapping for /error, so you are seeing this as a fallback.
There was an unexpected error (type=Bad Request, status=400).
Required String parameter 'username' is not present

Это кнопка:

<td><button type="submit"  name="action" value="newUser"  th:field="*{username}">New User</button></td>

Я могу использовать неправильные атрибуты, это мой первый проект с Spring.

Это мой логин HTML

 <!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      xmlns:th="http://www.thymeleaf.org"
      layout:decorate="~{fragments/layout}">
<head>
    <title>Login</title>
</head>
<body>
<form action="#" th:action="@{/log}" th:object="${loginDTO}" method="post">
    <table border="1">
        <tr>
            <td>Name:</td>
            <td><input type="text" th:field="*{username}" /></td>
            <td th:if="${#fields.hasErrors('username')}" th:errors="*{username}">Name Error</td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="text" th:field="*{password}" /></td>
            <td th:if="${#fields.hasErrors('password')}" th:errors="*{password}">Age Error</td>
        </tr>
        <tr>
            <td><button type="submit"  name="action" value="newUser"  th:field="*{username}">New User</button></td>
            <td><button type="submit" name="action" value="login" >Login</button></td>
        </tr>
        <span th:if="${logError != null}" class="error"><h3 th:text="${logError}"> este numele acelui user</h3></span>
    </table>
</form>

</body>
</html> 

Страница, на которой я хочу передать имя пользователя

<!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      xmlns:th="http://www.thymeleaf.org"
      layout:decorate="~{fragments/layout}">
<head>
    <title>Admin Main Page</title>
</head>
<body>

<h2> Welcome back  <span th:text="${name}"> </span>  Admin </h2>

</body>
</html>

Контроллер

 @PostMapping(value = "/log",params="action=newUser")
        public ModelAndView goToCreateUser(@Valid LoginDTO loginDTO, BindingResult bindingResult) {
            ModelAndView model = new ModelAndView("redirect:/admin");
            return model;
        }
      public ModelAndView adminMain( @RequestParam(name="username") String username)

  @GetMapping("/admin")
    public ModelAndView adminMain( @RequestParam(name="username") String username)
    {
        System.out.println(username);
        ModelAndView modelAndView=new ModelAndView("MainAdminPage");
        modelAndView.addObject("name",username);
        return modelAndView;
    }

Сущность

public class LoginDTO {

    @NotNull
    @Size(min=2, max=30)
    private String username;

    @NotNull
    @Size(min=2, max=30)
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...