Здравствуйте,у меня возник вопрос почему не работает регистрация нового пользователя? Пишу на java использую spring boot и thymeleaf. Заранее большое спасибо.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<title>Create an account</title>
</head>
<body>
<form action="#" th:action="@{/hello}" th:object="${userForm}" method="post">
<table>
<tr>
<td>User 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="password" th:field="*{password}" /></td>
<td th:if="${#fields.hasErrors('password')}" th:errors="*{password}">Password Error</td>
</tr>
<tr>
<td>Confirm password:</td>
<td><input type="password" th:field="*{passwordConfirm}" /></td>
<td th:if="${#fields.hasErrors('passwordConfirm')}" th:errors="*{passwordConfirm}">passwordConfirm Error</td>
</tr>
<tr>
<td><button type="submit">Submit</button></td>
</tr>
</table>
</form>
</body>
</html>
контроллер
@RequestMapping(value = "/registration",method = RequestMethod.GET)
public String registration(Model model){
model.addAttribute("userForm",new User());
return "registration";
}
@RequestMapping(value = "/registration", method = RequestMethod.POST)
public String registration(@ModelAttribute("userForm") User userForm, BindingResult bindingResult, Model model){
userValidator.validate((userForm),bindingResult);
if (bindingResult.hasErrors()){
return "registration";
}
userService.save(userForm);
securityService.autologin(userForm.getUsername(), userForm.getPassword());
return "redirect:/home";
}
и сам валлидатор
@Component
public class UserValidator implements Validator {
@Autowired
private UserService userService;
@Override
public boolean supports(Class<?> aClass) {
return User.class.equals(aClass);
}
@Override
public void validate(Object o, Errors errors) {
User user = (User) o;
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "NotEmpty");
if (user.getUsername().length() < 6 || user.getUsername().length() > 32) {
errors.rejectValue("username", "Size.userForm.username");
}
if (userService.findByUsername(user.getUsername()) != null) {
errors.rejectValue("username", "Duplicate.userForm.username");
}
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "NotEmpty");
if (user.getPassword().length() < 8 || user.getPassword().length() > 32) {
errors.rejectValue("password", "Size.userForm.password");
}
if (!user.getPasswordConfirm().equals(user.getPassword())) {
errors.rejectValue("passwordConfirm", "Diff.userForm.passwordConfirm");
}
}
}
Вы либо выдрали этот код откуда-то нихрена не понимая что там, либо Вы вообще не понимаете что написали. У Вас нет правильных мапперов на ссылку /hello + ко всему в пост запросе вы принимаете дтошник, которого вообще нет в форме
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как cгенерировать KeyEvent для двух кнопок ? То есть чтоб сгенерировалась комбинация двух кнопок, например Alt и G
Доброго времени суток, мне нужно задать путь к файлу в метод decryptFile и encryptFileЧуть раньше я вывел путь к файлу в TextView с помощью метода getRealPathFromURI
У компонента EditText требуется сделать следующую маску для ввода: градусы, минуты, секунды
Здравствуйте, изучаю книгу Head First Java и дошел до примера с использованием компаратора в коллекцияхПример из книги: