Я знаю, что этот вопрос кажется дублированным, но я прочитал все предложения и до сих пор не решил свою проблему. У меня есть простая форма для входа в систему, и я хочу передать набранное имя пользователя на другую страницу при нажатии 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;
}
}