Galera, eu to precisando fazer com que uma action seja executada depois de outra, com o form da primeira. Eu ate consegui que ela fosse chamada, mas como ela precisa de um form para executar sua logica, o form fica nulo e assim nao executa do jeito que deveria. Alguem poderia ajudar?
O que eu preciso fazer é com que depois da action atualizar os dados, uma action que faz a listagem de uns dados especificos seja executada e os parametros dela (form) sejam os da primeira action.
Chama um metodo da action por exemplo e dele dá um retono para outro método.
Ex.
public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// teu codigo
// retorno para outro método teu da action no caso o list
return list(mapping, form, request, response);
}
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled()) {
log.debug(“Iniciando o metodo ‘list’…”);
}
// teu codigo
// retorno para tua página
return mapping.findForward(“consulta”);
}
mas nesse caso. Como eu poderia chamar direto o método. Assim, se eu tenho um método pra editar e outro listar, quando eu fosse editar eu editaria e depois chamaria o método listar. Mas e quando eu fosse só listar? Como eu faria pra somente chamar o método listar? Sem ter que passar um parâmetro e usar um if para decidir qual método usar.
<form action="<s:url action="editar"/>">
//meu form aqui...
</form>
Implemente o método listar, que busque as informacoes nos seus repositorios e coloque o objeto na sessão.
Implemente o método editar, que pega as informacoes do seu request ou direto no objeto se tiver usando ognl, e grave esses dados no banco de dados…