Pessoal,
Eu já ví que no struts 1 basta estender a classe DispatchAction ao invés da Action e setar um parâmetro no xml para o método escolhido, mas e no Struts 2 como se escreve isso usando Annotation?
@Action(value = "/tantofaz", results = @Result(name = "ok", location = "/pasta/suaJsp.jsp"))
public String qualquerNome() {
return "ok";
}
Dessa forma quando você acessar a url …/tantofaz ele vai chamar o método qualquerNome. Você pode mudar o nome do método a qualquer momento fazendo dessa forma, só precisa respeitar a url.
Mas repare que para isso você deve usar as annotations do pacote de convenções do struts:
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
Blz? Flw! :thumbup:
Valew pela ajuda von.juliano, mas o meu problema é um pouco diferente, o que eu preciso saber é como mapear mais de um método na mesma Action? E acessar esse método pela URL.
Por exemplo:
@Action(value = "/tantofaz", results = @Result(name = "ok", location = "/pasta/suaJsp.jsp"))
Public String qualquerNome() { ... }
Public String inserirNome() { ... }
Public String listarNome() { ... }
Acho que você não entendeu a minha resposta. Isso que você mostrou ficaria assim:
[code]@Action(value = “/tantofaz”, results = @Result(name = “ok”, location = “/pasta/suaJsp.jsp”))
public String qualquerNome() { … }
@Action(value = “/inserir”, results = @Result(name = “ok”, location = “/pasta/inserir.jsp”))
public String inserirNome() { … }
@Action(value = “/listar”, results = @Result(name = “ok”, location = “/pasta/lista.jsp”))
public String listarNome() { … }[/code]Não é isso que você precisa? Como eu falei, estude como funciona o pacote de convenções do struts, é bem melhor do que a forma usual.
Flw! :thumbup:
NOSSA… é incrível perceber como o ser humano pode ser cego. Não entendo como eu não percebi que a anotation é do método e não da classe inteira e que execute é só um nome qualquer e não uma convenção de método principal como o Main por exemplo. Realmente muito obrigado e desculpa aí.