Olá,
Gostaria de saber como devo proceder para em uma classe action, poder ter vários métodos e como chama-los. Pergunto isso pois fiz da forma abaixo e não deu certo, ele sempre cai no primeiro método da classe.
Classe Login:
public class LoginAction extends ActionSupport {
private Usuario usuario;
@Inject UsuarioService usuarioService;
@Action(value="login", results = {
@Result(name="ok", type="redirectAction", params= {"actionName", "inicializaDashboard"}),
@Result(name="input", location="/signin.jsp") })
public String login() {
Usuario usuarioLogado = usuarioService.logar(usuario);
String retorno = "input";
if(usuarioLogado != null){ ActionContext.getContext().getSession().put("usuarioLogado", usuarioLogado);
retorno = "ok";
}else{
retorno = "input";
}
return retorno;
}
@Action(value="logout", results = {
@Result(name="ok", location="/signin.jsp")
})
public String logout() {
String retorno = "ok";
ActionContext.getContext().getSession().remove("usuarioLogado");
return retorno;
}
public Usuario getUsuario() { return usuario; }
public void setUsuario(Usuario usuario) { this.usuario = usuario; }}
CHAMADA PELA JSP:
PORÉM SEMPRE DA ERRO DIZENDO QUE NÃO ENCONTOU A ACTION OU O RESULTADO INPUT. FIZ TESTES E PERCEBI QUE SEMPRE QUE CHAMO O LOUGOUT, A ACTION CHAMADA É A DE LOGIN AO INVÉS DE LOUGOUT.