Uso de DispatcheAction com Tiles

2 respostas
sudeval

Pessoal estou tendo uma dúvida de como resolver determinado problema, se alguém poder me ajudar irei ficar muito agradecido.

Estou desenvolvendo um sistema utilizando o Struts e estou usando Tiles e uso também DispatchedACtion, digamos que eu precisa em determinada “Tela” trazer informações ( Colecao ) para preencher um ComboBox, como eu posso fazer isso usando o Tiles e DispatchedAction, por exemplo:

xml do meu tiles

<tiles-definitions>
	<definition name="homePageDef" path="/pages/mainLayout.jsp">
		<put name="header" value="/pages/menu.jsp"/>
		<put name="body" value="/pages/Home.jsp"/>
		<put name="footer" value="/pages/rodape.jsp"/>
	</definition>
	<definition name="registroPageDef" extends="homePageDef">
		<put name="body" value="/pages/registro.jsp"/>
	</definition>
....

para fazer o tiles funcionar eu preciso configurar uma Action la no meu struts-config.xml

<action
		path="/registroPage"
		forward="registroPageDef"/>

digamos que eu queira ao ir para a tela de Registro, preencher campos com a informacao de País por exemplo
e eu tenho um UsuarioAction ( que extends DispatchedAction )

public ActionForward prepareUsuario(ActionMapping map,
			   ActionForm form,
			   HttpServletRequest request,
			   HttpServletResponse response) {
		/* va obter a lista de países */
		List list = new ArrayList();
		list = AlguemUtil.getListaPaises();
		request.setAttribute("paises,list);

		return map.findForward("prepareUsuario");
	}
// aqui teria outros metodos
// como 
// cadastrarUsuario()...

// atualizarUsuario()...

então eu teria que mapear UsuarioAction la no meu struts-config.xm

<action path="/usuarioAction" type="br.com.sav.action.UsuarioAction" name="UsuarioForm">
    	<forward
    		name="prepareUsuario" path="???" />
    	<forward
    		name="ok" path="/pages/Home.jsp" />
    	<forward
    		name="failed" path="/pages/falhaRegistro.jsp" />
    </action>

o que eu devo colocar no path, uma vez que eu uso tiles e o que seria a página de Registro é composto por mais de uma página que o Tiles forma ( definido em tiles-definitions ) e que é construído através de uma outra action que no caso é :

<action
		path="/registroPage"
		forward="registroPageDef"/>

O que eu preciso fazer ? estou passando por cima de algo, estou praticamente comecando com o Struts e com Java voltado para WEB, qualquer ajuda é bem vinda.
Agradeço!

2 Respostas

felipealbuquerque

Salvo engano, você pode usar diretaente a definição do tiles:

<action path="/usuarioAction" type="br.com.sav.action.UsuarioAction" name="UsuarioForm">
    	<forward
    		name="prepareUsuario" path="registroPageDef" />
    	<!-- Restante dos forwards -->
    </action>
sudeval

valeu, realmente resolve, obrigado ae !

Criado 10 de novembro de 2007
Ultima resposta 10 de nov. de 2007
Respostas 2
Participantes 2