Olá Mario, tudo bem? Peço desculpas pela demora em ti responder! Nesse caso, você tem algumas possibilidades, você poderia quando fosse fazer o "FOR" ou seja o loop para popular a tabela, criar todas as linhas com um botão e nesse botão pode ser um link, onde o link recebe como parâmetro algo que identifique a linha. Geralmente nas aplicações mais simples costumava fazer da seguinte forma, usando o marko:
<tr id="livro_${livro.id}" for (livro in data.livros)>
<td>${livro.id}</td>
<td>${livro.titulo}</td>
<td>${livro.preco}</td>
<td><a href="/livros/editar/${livro.id}">Editar</a></td>
</tr>
Bem semelhante ao que o professor fez! Isso porque o que identifica cada linha da tabela é o ID do livro daquela linha em questão. Outra forma, seria passar a informação que para a sessão ou algo do tipo. Porém o mais recorrente é fazermos dessa forma apresentada acima, pode ser diferente usando framework frontend como é o caso do React, Angular, Vue.js onde poderíamos fazer a passagem do parâmetro por meio dos métodos de manipulação e interna.
Espero ter ajudado!