Como dividir o Layout (Menu, Topo, Rodapé)?

10 respostas
W

Olá pessoal,

Estou tentando simular um Frame só que utilizando tabela, pois se eu usar frame a página vai ficar estática, não vai ter como usar a barra de rolagem, pois rolaria apenas o quadro principal nele mesmo.

Estou usando assim:

<table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td colspan="2"><%@ include file="topo.jsp" %></td> </tr> <tr> <td><%@ include file="menu.jsp" %></td> <td><%@ include file="filmes.jsp" %></td> </tr> <tr> <td colspan="2"><%@ include file="down.jsp" %></td> </tr> </table>
O que gostaria de saber é como que à partir de um link do menu.jsp eu alteraria o include do quadro principal, no caso ai o filmes.jsp.

Meu link:

<a href="frame.jsp?link=cadFilme">Cadastrar Filme</a>

Então a pergunta final é:
Tem como eu colocar um parâmetro do GET dentro de um include tipo:

<%@ include file="cadFilme.jsp" %>

Ficaria:

<%@ include file=<% request.getParameter("link"); %> %>

10 Respostas

P

opa!

sugiro que use um layout com CSS para ficar mais leve e mais facil

dá uma olhada aqui

abraço

J

Isto, o melhor jeito para vc trabalha é com CSS e use a tag"

" ao inves de “” o seu layout fica melhor e mais facil de trabalhar.
G

Conhece o sitemesh???

http://www.opensymphony.com/sitemesh/

E

Se estiver usando JSF. Tem o Facelets :
https://facelets.dev.java.net/

W

paulofernandesjr: Meu problema não é o layout e sim o carregamento das páginas.

joaorafael: Usar

é legal sim, mas não estou usando, pois se eu fazer uma busca e o meu retorno de lista for maior (de tamanho vertical mesmo) que meu layout (height) o conteúdo retornado ultrapassa o layout, já com a tabela, esta cresce dinamicamente deixando o conteúdo do resultado todo dentro do meu designer.

eduardocsanto: Estou estudando JSP + Servlet ainda…

g4j: Sinceramente não entendi muito sobre o que me passou e se eu ficar implantando outras tecnologias vou fugir do escôpo do meu estudo que é por enquanto JSP + Servlet.

Obrigado a todos até agora. (:

G

WashingtonBotelho É perfeitamente possível a div crescer dinamicamente acompanhando todo o seu layout/design.

W

Gbzao!: Eu tenho 3

que deveria crescer, a do menu, do conteúdo e da lateral direta. Se soubesse já ajudava, apesar de fugir um pouco do escopo da dúvida. =]
G

WashingtonBotelho: A solução para seu problema é um técnica chamada Faux Columns.

Você pode pesquisar mais sobre o assunto no google, mas, segue um exemplo:
http://forum.imasters.uol.com.br/index.php?showtopic=225319

W
Bem pessoal, depois de um tempo e graças ao livro de Edsson Gonçalves eu consegui achar uma solução para meu problema. Não sei se é a mais certa, mas eu adaptando algumas coisas, esta fazendo o que quero. Seque o código: frame.css:
#geral {
    position: absolute;
    width: 950px;
    background-color: #FFFFFF;
    float: none;
  }
  #topo {
    width: 950px;
    height: 140px;
    background: url(../topo.png);
  }
  #menu {
    float: left;
    width: 150px;
    padding: 5px; /* Espaços em volta de tudo */
  }
  #conteudo {
    float: left;
    width: 750px;
    padding: 15px;
  }
  #direita{ /* 150 + 750 + 5 = 905 cadê os 45? */
    float: right;
    width: 5px;
    background: url(../direita.png) repeat-y; /* Não esta repetindo. */
  }
  #rodape {
    width: 950px;
    height: 60px;
    clear: both;
    background: url(../rodape.png);
  }
frame.jsp:
<%@page isELIgnored="false" %>

<html>
  <head>
    <link href="css/frame.css" rel="stylesheet" type="text/css"/>
  </head>
  <body>
      <%
        String link = request.getParameter("link");
        if (link == null) {
          link = (String) session.getAttribute("link");
        }
        session.setAttribute("link", link);
      %>

    <div id="tudo">
      <div id="topo"><jsp:include page="topo.jsp"/></div>
      <div id="menu"><jsp:include page="menu.jsp"/></div>
      <div id="conteudo"><jsp:include page="${param.link}"/></div>
      <div id="direita"><jsp:include page="direita.jsp"/></div>
      <div id="rodape"><jsp:include page="rodape.jsp"/></div>
    </div>
  </body>
</html>

- Reparem que em vez de usar <%@include%>, estou usando <%jsp:include%> e isto me permite passar parametro sem dar erro.
- Outro jeito seria usar o da biblioteca core, mas não precisou ir tão longe.
- Outra ajuda foi do EL, que com ele posso passar parâmetro sem que este seja reconhecido como string.
- E o ponto chave foi guarda o último link visitado na sessão, pois se eu fizer um GET ou POST dentro da página incluida no 'conteudo' o parametro link será null, e se ele for null eu seto ele com o último link visitado, assim a página voltando para a mesma no qual eu dei o GET e POST.
- Os comentários do css são verídicos e não consegui resolver. =]

É tudo que fiz pessoal.
Espero poder ajudar alguém com este código, e obrigado a todos que tentaram ajudar. :wink:

H

dae brother, procurar saber mais sobre TILES, vc vai ver, é PERFEITO para o q vc tá querendo…layout dinâmico…

falows!

Criado 22 de agosto de 2008
Ultima resposta 3 de set. de 2008
Respostas 10
Participantes 7