<%@include file=minhaVariavel%>

Olá pessoas.
Seguinte, quero fazer assim, tenho uma página jsp simples.
Ela tem três partes, o topo, um menu vertical na esquerda e o conteúdo vai aparecer no restante da página (normal e simples certo?)

Seguinte, os menus vão chamar novas funcionalidades, só que eu não quero ficar montando várias páginas então o que eu fiz. Separei o topo, e o menu em dois arquivos jsp diferentes e faço um include deles na index. (blz, normal e simples)

Ai eu pensei em fazer o seguinte:
Vou fazer os conteúdos separados em vários arquivos jsp também, dai eu faço um include dinamicamente( ai ferrou)
Eu fiz assim:
-declarei uma variavel que ia conter o caminho da página a ser incluída, esse caminho ia ser passado para a página como um parametro chamado “main”, a lógica ficou assim:

<%
String mainPage = “/main.jsp”;
String myPage = request.getParameter(“main”);
if (myPage!=null)
mainPage = myPage;
%>

Mas ai minha diretiva include ficou errada, pois vai ficar sem aspas:
<%@include file=mainPage%>

como vocês resolvem isso?

Eu pensei em passar um variável e fazer um monte de ifs…

if(parameter=“main”)
…include file="main.jsp!
else if (parameter=“xpto”)
…include file=“xpto” …etc…

mas isso não me parece nem um pouco elegante.
postem ai, como vocês fazem geração de conteúdo dinâmico com o mínimo de esforço possível?
aguardo colaboração.
t+

Acho que vc precisa usar o import do JSTL, algo parecido com isso:

<c:import url="header.jsp">
     <c:param name="pageTitle" value="newInstance.com"/>
     <c:param name="pageSlogan" value=" " />
</c:import>

Veja o exemplo completo:

http://www-128.ibm.com/developerworks/java/library/j-jsp06173.html

Nãoooo use scriptlets…ECAAAAA

+1

Então devo mudar de scriplets para declarações?
isso resolve o problema?
aposto que essa dúvida deve ser algo simples pra vocês, respondam ai vai…

Reeeesolvido pessoas…
fiz assim oh:

primeiro, declarei a variavel dentro de uma declaração:
<%! String mainPage = “/main.jsp”; %>

Depois usei scriplets para fazer o tratamento para o parametro:
<%
String myPage = request.getParameter(“main”);
if (myPage!=null)
mainPage = myPage;
%>

Dai na hora de fazer o include, fiz de uma maneira um pouco diferente, vi isso no site da sun:
[quote]<jsp:include page="<%=mainPage%>" flush=“true”/>[/quote]

pronto, dai funcionou.

Sim, pois a diretiva <%@ include, inclui conteúdo estático, em tempo de ‘tradução’ da página para o servlet, aí a razão por não aceitar valores de tempo de execução.

Já <jsp:include, inclui valores em tempo de execução da página.

E mais uma vez, evite usar scriptlets.