Search⌘ K

Server-Side Rendering - II

Explore how to implement server side rendering in Thymeleaf and Spring Boot applications by managing teams and players. Learn to handle lazy loading exceptions, update services, and improve data retrieval using JOIN FETCH for efficient rendering and editing of team data.

We'll cover the following...

Create team

If we test the code now, the browser should look like this when adding a team:

Edit team

The code will also work for editing a team since it only needs the server-side Thymeleaf rendering we’ve already implemented:

However, as we can’t yet add players through the UI, we need to generate them when seeding the database.

Java
Streams.forEachPair(generatedUsers.stream().limit(TEAM_NAMES.length),
Arrays.stream(TEAM_NAMES),
(user, teamName) -> {
Set<TeamPlayerParameters> players = Set.of(
new TeamPlayerParameters(randomUser(generatedUsers),
PlayerPosition.SMALL_FORWARD),
new TeamPlayerParameters(randomUser(generatedUsers),
PlayerPosition.SHOOTING_GUARD),
new TeamPlayerParameters(randomUser(generatedUsers),
PlayerPosition.CENTER)
);
CreateTeamParameters teamParameters = new CreateTeamParameters(teamName,
user.getId(),
players);
teamService.createTeam(teamParameters);
});

On line 8, we add a random user as a SMALL_FORWARD to the team.

To make this code work, we need to update TeamService and TeamServiceImpl ...