Tiles 2 - Renderizar

4 respostas
jjose

O tiles é substitudo do frameset?
O meu problema é que no frameset eu poderia renderizar apenas o body e manter o menu, mas no TILES renderizar a pagina toda.

body.jsp
<a href="http://www.uol.com.br"> uol </a>
Tiles
<definition name="base.layout" template="/layout.jsp">
        <put name="title"  value=":: Tiles2 ::" />
        <put name="header" value="/menu.jsp" />
        <put name="body"   value="/body.jsp" />
    </definition>

4 Respostas

jjose

Alguem conhece, sabe se é possivel?

v1c70r_f

Amigo, não entendi direito o seu problema…

Uso o tiles já a algum tempo, mas sempre que usei ele faz com que a página toda seja renderizada, porque na verdade quando montamos uma página com o tiles ele apenas monta tudo em uma nova pagina, não inserindo conteúdo igual em um frame e tals…

Mas se existe uma maneira de fazer isso não conheço, vou ficar d olho aqui nesse post, porque se ele fizer isso mesmo é muito loco hehe xD

:smiley:

v1c70r_f

Ah, e se em determinadas situações vc precisa que a página seja renderizada diferente, tipo uma hora com um atributo e outra hora com outro, da pra usar variáveis boolean.

Aí na pagina que você implementar a definition se exitir alguma coisa que naquela página não deve ser mostrada mas está dentro da página no definition é só usar essa variável setando como true ou false, mas acho que não tem muito haver com seu problema neh?

abraçow

everson_z

Acho que apenas eu uso o TILES

Não sei se é a melhor maneira mas é como eu uso e como ninguem te ajudou, ai vai o meu codigo, acho meia boca sempre passar por um Servlet.

Quando o usuario clicar no link vai chamar uma servlet informando o valor da variavel tiles, esse valor é jogado na sessao para index carregar o ‘definition name’.

<a href="tiles?tiles=base.outro">novo</a>
<body>

<c:if test="${tiles == null}">
	<c:set var="tiles" scope="session" value="base.layout" />
</c:if>

<tiles:insertDefinition name="${tiles}"/>

<c:remove scope="session" var="tiles"/>

</body>

Servlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String tiles = request.getParameter("tiles").toString();
		if(tiles != null){
			HttpSession s = request.getSession();
			s.setAttribute("tiles", tiles);
		}
		response.sendRedirect("index.jsp");
	}

xml

<definition name="base.layout" template="/layout.jsp">
        <put name="title"  value=":: Tiles2 ::" />
        <put name="header" value="/header.jsp" />
        <put name="body"   value="/body.jsp" />
    </definition>
    
    <definition name="base.outro" extends="base.layout">
        <put name="body"   value="/header.jsp" />
    </definition>
Criado 30 de agosto de 2007
Ultima resposta 31 de ago. de 2007
Respostas 4
Participantes 3