Моя проблема в том, что кнопка отправки под формой должна перенаправлять регистрирующегося пользователя на страницу приветствия после ее нажатия.
Пока что кнопка хочет перенаправить на "welcome.html", но у меня постоянно вылетает ошибка 404, чего я не понимаю.
Welcome-html не делает ничего особенного, просто текст приветствия.
Мой контроллер выглядит следующим образом:
package user;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class UserController {
@Autowired private UserRepository users;
@Autowired private UserManagement UserManager;
@GetMapping("/")
public String register(Model model, RegistrationForm form) {
System.out.println("Homepage");
model.addAttribute("form", form);
return "register";
}
@PostMapping("/register")
public String submit(@ModelAttribute("user")User user, RegistrationForm form,
Model model) {
User newUser = UserManager.createUser(form);
model.addAttribute("name", newUser.getAccount().getUsername());
model.addAttribute("street", newUser.getStreet());
model.addAttribute("PLZ", newUser.getPLZ());
model.addAttribute("mail", newUser.getMail());
model.addAttribute("number", newUser.getPhoneNumber());
users.save(newUser);
return "redirect:/welcome";
}
}
`
the register-page functions alright and the button too:
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
<html xmlns:th = "http://www.thymeleaf.org">
<head>
<meta http-equiv = "content-type" content = "text/html; charset=UTF-8"/>
<link rel = "stylesheet" type = "text/css" th:href = "@{/resources/css/style.css}" href = "../static/resources/css/style.css"/>
<title>register</title>
</head>
<body>
<header id = "mainHeader">
<div class = "container">
<h1>ClownCollege</h1>
</div>
</header>
<nav id = "mainNav">
<div class = "container">
<ul>
<li><a href = "">Startseite</a>
<li><a href = "">Angebote</a>
<li><a href = "">Login</a>
</ul>
</div>
</nav>
<div id = "register">
<h2>Registrierung</h2>
<form modelAttribute = "form" method = "post" th:object=${form}>
<input type = "text" field = "*{name}" />
<input type = "text" field = "*{street}"/>
<input type = "text" field = "*{PLZ}"/>
<input type = "text" field = "*{mail}"/>
<input type = "text" field = "*{number}"/>
<input type = "text" field = "*{password}"/>
</form>
<a href = "welcome.html"> <button type = "submit">registrieren</button></a>
</div>
</body>
</html>[исходные папки для поиска пути]






action = "register" к <form>. Он указывает, куда отправляется форма после отправки. <form action = "register" modelAttribute = "form" method = "post" th:object=${form}>
<a href = "welcome.html">. Поскольку ваш контроллер имеет оператор перенаправления return "redirect:/welcome";, html-ссылка не нужна.Это должно работать так, как вы ожидаете.
Это помогло в первой половине, я полагаю, модификатор действия отсутствовал, но мне также не хватало геттера для другой html-страницы. Итак, теперь кнопка перенаправляется, как и предполагалось, но все мои значения формы равны нулю, поэтому привязка все еще неверна... если мне понадобится дополнительная помощь, я задам еще один вопрос, спасибо за быструю помощь
У вас нет кнопки, у вас есть ссылка... Удалите ссылку вокруг кнопки.