Как получить объект с form (spring + thymeleaf)

217
22 ноября 2021, 18:30

Подскажите пожалуйста, что делаю неправильно. При запуске программы и ввода данных в форму, в debug значения имени и пароля пустые(фото ниже).

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String name;
    private String password;
    private boolean active;
    @ElementCollection(targetClass = Role.class, fetch = FetchType.EAGER)
    @CollectionTable(name = "user_role" , joinColumns = @JoinColumn(name = "user_id"))
    @Enumerated(EnumType.STRING)
    private Set<Role> roles;
    Getters and Setters ...
}

///

@Controller
public class RegistrationController {
    @Autowired
    private UserRepository userRepository;
    @GetMapping("/registration")
    public String registration(Model model){
        User user = new User();
        model.addAttribute("user",user);
        return "registration";
    }
    @PostMapping("/registration")
    public String registerUser(User user, Map<String, Object> model){
        user.setActive(true);
        user.setRoles(Collections.singleton(Role.USER));
        //userRepository.save(user);
        return "redirect:/login";
    }
}

///

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form th:action="@{/registration}" th:object="${user}" method="post" >
    <div><label>User name : <input type="text" th:name="*{name}" /></label></div>
    <div><label>User password : <input type="password" th:name="*{password}" /></label></div>
    <div><button type="submit">Create</button></div>
</form>
</body>
</html>

Answer 1

@PostMapping("/registration") public String registerUser(@RequestParam User user, Map model){

    user.setActive(true);
    user.setRoles(Collections.singleton(Role.USER));
    //userRepository.save(user);
    return "redirect:/login";
}

}

READ ALSO
Не выполняется код после вполне нормального условия

Не выполняется код после вполне нормального условия

Собственно, после вот этого условия: if(eventgetMessage()

196
Как найти заданное пользователем число в массиве?

Как найти заданное пользователем число в массиве?

/** Returns the index of the first occurrence of the array element with the given value

191
Необходимость Buffered Stream в Java

Необходимость Buffered Stream в Java

Всегда ли лучше использовать BufferedStream вместо обычного IOStream? В каких ситуациях лучше не использовать Buffered?

91
Сравнить две коробки. Что не так?

Сравнить две коробки. Что не так?

На столе две коробки

175