Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Exerc 2 AL 5. Redirecionando requisições - Spring

Srs, boa tarde! Eu estou com ás seguintes duvidas quem conseguir ajudar eu agradeço.

Por que estamos usando a linha de código:

<input type="hidden" name="id" value="${conta.id}"/>

dComo o Spring consegue efetuar á chamada ao método /alteraConta, via click no botão alterar do formulário, não consigo visualizar nenhuma relação.

3 respostas

Boa Tarde,

No form da jsp o atributo action é igual a alteraConta, ou seja, quando você fizer o submit ele irá chamar a action alteraConta. Depois desse processo o próprio spring se encarregará de criar o objeto conforme o parâmetro passando na declaração do método "public String altera(Conta conta)", que nesse caso é o conta, agora para saber qual campo deve ser ligado com qual atributo dessa classe, um exemplo seria o próprio id que você passou, ele pega o nome do campo no jsp, nesse caso é um input com o nome id, e verifica se existe um id na Conta, porque lembre-se que você criou a action passando um parâmetro conta para o método. Se existir ele pega o valor do campo, que nesse caso é um input com o nome id, e atribui ao atributo id do objeto (conta). Mas isso tudo é feito automaticamente pelo spring.

Não sei se me expressei bem, mas talvez ajude.

Até

Boa Tarde, O http é stateless, então vamos supor vc recuperou a conta via get e jogou tudo em um formulário para a edição, quando vc submeter esse formulário o spring vai popular o objeto Conta com os inputs, um por um, pelo fato de ser stateless e ser uma página de alteração, ele tem que manter o id da conta em algum lugar do formulário porque esse id vai ser novamente mapeado para o objeto conta, se esse id não estiver pendurado no form vai ser copiado o valor null para conta.setId oque caracterizaria uma inclusão e não uma alteração

solução!

Srs, boa tarde!

Matheus e Ricardo, agora ficou claro. Muito obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software