Search code examples
javaspringspring-data-jpaspring-datathymeleaf

Spring - Is there a way to display the id of a record after being registered with Thymeleaf?


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>

Solution

  • 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>