Estou usando struts 2 com annotations. Tenho uma action que com o resultado SUCCESS quero redirecionar para outra. Redirecionar já está sendo feito, porém, não consigo passar parametros na annotation @Result. Vi que tem atributo na annotation chamado params, mas não sei como usar (se é que isso resolve meu problema). Alguém já usou annotation @Result passando parâmetros de uma action para a outra?
O atributo params deve ser usado como um array no formato {chave1,valor1,chave2,valor2}
Exemplo:
@Result(name="success", value="/home.jsp", type=TilesResult.class, params={"title","Titulo","cabecalho","header.jsp","rodape","footer.jsp"})
public class HomeAction extends ActionSupport {
// ...
}
Link para referência: http://struts.apache.org/2.0.9/docs/result-annotation.html
Alexandre, eu vi isso, o params é um array de string, mas ele aceita constantes apenas. Eu quero passar um valor dinamico, um id que só vai ser gerado ao final do método chamado pelo submit. Eu preciso que a minha action que salva livros redirecione para a action minha action que salva edições passado o id desse livro, pois a edição que irá ser criada pertencerá a esse livro criado.
Como eu passo esse atributo dinamico, ja que o params aceita constantes apenas? Obrigado pela ajuda.
Caso seja do interesse de alguém, resolvi o problema, vou postar para não acontecer como já aconteceu comigo várias vezes, de achar um post com meu problema mas sem a solução.
Usei type ServletActionRedirectResult.class e passei o parâmetro (um atributo da action) com ${}, assim como era feito no xml.
@Result( name = "success", value = "index.action", type = ServletActionRedirectResult.class, params = { "idLivro", "${idLivro}" } )
Olá.
Rapaz, to tentando fazer isso que você fez mas não funciona de jeito nenhum… vc tme como me ajudar??? como vc colocou na saida da action q vai usar esse Result ?!
[]'s… e obrigado
não é melhor sobrecarregar o controle e utilizar o forward? Neste aspecto o spring é melhor do que o struts.