In my project I want to show the id of the record in the view with Thymeleaf after it has been inserted successfully.
Is there any way to get that result?
Entity:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_user")
private Long idUser;
@Column(name = "first_name", nullable = false)
private String firstName;
@Column(name = "last_name", nullable = false, length = 150)
private String lastName;
public Long getIdUser() {
return idUser;
}
public void setIdUser(Long idUser) {
this.idUser= idUser;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName= firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName= lastName;
}
}
Service:
public void registerUser(User user) {
userRepository.save(user);
}
Controller (To show the user's id after being registered):
public String userRegister(User user) {
userService.registerUser(user);
return "redirect:/home?success";
}
Thymeleaf (The idea to be able to display the id of the new user):
<span th:text="${idUser}"></span>
Instead of returning String
you need to return ModelAndView
so you can any property of User object
Controller
public ModelAndView userRegister(User user) {
ModelAndView model = new ModelAndView("home");
User registerUser = userService.registerUser(user);
model.addObject("registerUser",registerUser);
return model;
}
Repository
public User registerUser(User user) {
return userRepository.save(user);
}
Thymeleaf code
<span th:text="${registerUser.idUser}"></span>