Im ganzen Internet gesucht und verschiedene Lösungen versucht, aber irgendwie arbeitete niemand in meinem Fall.Erstellen und beibehalten eines neuen Benutzers basierend auf HTML-Eingabe. Spring MVC, JPA Hibernate, Thymeleaf
Ich habe folgende HTML-Vorlage für einen Blick, wo Sie sich registrieren sollten:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<link rel="stylesheet" type="text/css" th:href="@{/css/style.css}" />
<!-- Page title -->
<title> Register</title>
</head>
<body>
<form action="#" th:action="@{/registeruser}" th:object="${user}" method="post">
<input type="text" th:field="*{username}" />
<input type="text" th:field="*{email}" />
<input type="text" th:field="*{password}" />
<input type="submit" />
</form>
</body>
</html>
auch hier ist die Steuerung:
@Controller
public class RegisterController {
@Autowired
private UserService userservice;
@Autowired
private RoleService roleService;
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String regUser(Model model) {
User u = new User();
u.setUsername("username");
u.setPassword("password");
u.setEmail("email");
Set<Role> userRoles = new HashSet<>();
userRoles.add(roleService.findRoleByName("ROLE_USER"));
u.setRoles(userRoles);
System.out.println("test");
model.addAttribute("user", u);
return "register";
// return new ModelAndView("register", "command", new User());
}
@RequestMapping(value = "/registeruser", method = RequestMethod.POST)
public String addUser(@ModelAttribute(value = "user")User user,
ModelMap model) {
model.addAttribute("username", user.getUsername());
model.addAttribute("password", user.getPassword());
model.addAttribute("email", user.getEmail());
System.out.println("user " + user.getUsername() + "got registered, here a list of all users: ");
return "login";
}
}
Die Konsole Drucktest im regUser() Methode funktioniert aber irgendwie funktioniert der console print in der addUser() -Methode nicht, also schätze ich, dass er nicht ausgelöst wird? Auch die Ansicht funktioniert perfekt und ich werde nach dem Absenden auf der Anmeldeseite umgeleitet, aber das ist auch die defaultSuccesFulUrl, so dass es wahrscheinlich nichts bedeutet.
Irgendwie frustriert über diese, so wäre es wirklich schön, wenn Sie helfen könnten. Vielen Dank im Voraus.
Versuchen 'action = "#" Entfernen' – bphilipnyc
es entfernt Das Verhalten hat sich nicht geändert. – Zytro