Quando não retornar nada, voltar pra mesma página (struts)

4 respostas
jason_bourne

Pessoal,

Estou tentando encontrar uma forma mais elegante de fazer com que o struts retorne para a mesma página (lista.jsp), tendo dados no banco ou não. Atualmente eu faço assim:

ListaContatos.java

public class ListaContatos extends Action{

	public ActionForward execute(ActionMapping map,ActionForm form,
			HttpServletRequest req,HttpServletResponse res) throws Exception{

		List<Contato> lista = new ContatoDAO().getLista();

			req.setAttribute("contatos",lista);

		if(lista.isEmpty())
			return map.findForward("vazia");
		else
			return map.findForward("lista");

	}
}

e no struts-config.xml:

<action path="/lista" type="br.org.dominio.actions.ListaContatos">
		<forward name="lista" path="/lista.jsp"/>
		<forward name="vazia" path="/vazia.jsp"/>
	</action>

Perceberam q se retornar vazio ele vai pra página vazia.jsp?. Tenho como retornar para a mesma página (lista.jsp)? com uma mensagem de erro (Nada consta)?

4 Respostas

edilson_x

Vc pode usar uma taglib para validar o retorno “contatos”,
se vazio mostra uma mensagem, se não usa a lista.

retorne a lista e faça a verificação na pag.

req.setAttribute("contatos",lista);                 

        return map.findForward("lista");
jason_bourne
edilson_x:

Vc pode usar uma taglib para validar o retorno "contatos",
se vazio mostra uma mensagem, se não usa a lista.

retorne a lista e faça a verificação na pag.
req.setAttribute("contatos",lista);                 

        return map.findForward("lista");

Olá, eu já tentei isso, mas quando retorna vazio, ele nem vai pra lista.jsp :(

M

na action do seu struts-config.xml vai ter o action-mapping e vc coloca um único forward dentro dessa ação pra retornar pro lista…simples…

jason_bourne

Agora sim!. Não sei o q eu tava fazendo de errado…vlw!

Criado 7 de outubro de 2007
Ultima resposta 8 de out. de 2007
Respostas 4
Participantes 3