thymeleaf регистрация

382
21 декабря 2016, 00:10

Здравствуйте,у меня возник вопрос почему не работает регистрация нового пользователя? Пишу на 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");
    }
}

}

Answer 1

Вы либо выдрали этот код откуда-то нихрена не понимая что там, либо Вы вообще не понимаете что написали. У Вас нет правильных мапперов на ссылку /hello + ко всему в пост запросе вы принимаете дтошник, которого вообще нет в форме

READ ALSO
Как cгенерировать KeyEvent для двух кнопок?

Как cгенерировать KeyEvent для двух кнопок?

Как cгенерировать KeyEvent для двух кнопок ? То есть чтоб сгенерировалась комбинация двух кнопок, например Alt и G

365
Как задать путь к файлу

Как задать путь к файлу

Доброго времени суток, мне нужно задать путь к файлу в метод decryptFile и encryptFileЧуть раньше я вывел путь к файлу в TextView с помощью метода getRealPathFromURI

266
Как у EditText в JAVA сделать маску?

Как у EditText в JAVA сделать маску?

У компонента EditText требуется сделать следующую маску для ввода: градусы, минуты, секунды

295
Java. Comparator

Java. Comparator

Здравствуйте, изучаю книгу Head First Java и дошел до примера с использованием компаратора в коллекцияхПример из книги:

267