Struts + Displaytag + DispatchAction

4 respostas
kmagnani

Olá, pessoal!

Estou usando o Struts com a Displaytag. Tenho uma página JSP com alguns botoes. Quando um deles é clicado, ele seta o valor de um campo hidden chamado ‘sender’ para o nome do método que deverá ser executado na classe q deriva de DispatchAction. Nesta mesma página tem uma tabela exibida com display:table, da displaytag. Quando clicava-se no cabeçalho da tabela, para ordenação, a requisição não chegava a ser repassada para a action, fazendo com que os dados digitados em campos se perdessem. Segundo o próprio site da displaytag, resolvi isto colocando um atributo requestURI. Assim, ao clicar em ordenar, a action é chamada, mas o problema é que o método chamado é aquele q se encontra em ‘sender’, que é o método do último botão clicado. O q eu gostaria é de setar um método específico para os cliques em links da tabela da displaytag.

Alguém sabe como fazer isto?

valew!!!

4 Respostas

ramilani12

O que vc precisa é criar vários metodos na sua Action e passando na url qual metodo será invocado

Ex:

Ordena.do?metodo=ordenaNome
Ordena.do?metodo=ordenaIdade
kmagnani

ramilani12:
O que vc precisa é criar vários metodos na sua Action e passando na url qual metodo será invocado

Ex:

Ordena.do?metodo=ordenaNome Ordena.do?metodo=ordenaIdade

Os métodos já existem.

No atributo ‘requestURI’, se eu coloco algo do tipo ‘/minhaAction?sender=metodoQueProcessaLinksDeTabela’, por exemplo, a URl final fica com dois ‘sender’: o novo, com o nome do novo metodo, e o antigo, com o nome do método anteriormente executado, e o que é executado é o antigo.

O interessante é que a propriedade ‘sender’ do ActionForm (correspondente ao campo hidden) já vem alterada se eu alterá-la na action antes do forward de retorno ao JSP (dá para ver isto com um alert do javascript), mas mesmo assim o link da displaytag é montado com o valor antigo de ‘sender’.

kmagnani

Alguém mais tem alguma idéia???

kmagnani

Ninguém???

Criado 14 de junho de 2007
Ultima resposta 18 de jun. de 2007
Respostas 4
Participantes 2