JSF - include dinâmico

7 respostas
gustavodelgado

Alguém sabe se é possível fazer um include dinâmico com JSF, ou mesmo JSP? Por exemplo:

<jsp:directive.include file=“PageFragment.jspf”/>

No lugar do nome do arquivo, passaria algum atributo que possa ser mudado dinamicamente…
Se eu colocar #{Bean.atributo} ele não reconhece.

7 Respostas

davidbuzatto
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

.
.
.

<f:subview id="pagina">
    <c:import url="/#{Bean.atributo}"/>
</f:subview>

Até mais!

gustavodelgado
davidbuzatto:
<f:subview id="pagina">
    <c:import url="/#{Bean.atributo}"/>
</f:subview>

Não funcionou não hein.... se eu colocar diretamente o nome do arquivo, tudo bem, mas com um atributo (String) de um bean ele não aparece nada na área do import...
Obrigado.

Ferryman

Olá,

vc consegue fazer isso com ajax4jsf.

utilize o componente a4j:include e nele vc consegue setar o viewId=#{minhaExpressão}.

Assim vc pode ter actions que troquem o valor de “minhaExpressão”, e com o reRender é possivel trocar o conteudo incluido sem recarregar sua pagina toda.

[]s
Ferry

gustavodelgado

Opa… funcionou com o ajax4jsf (ainda bem que eu já estava usando ele).

Porém ainda está ocorrendo um problema:
Eu tenho um panelLayout (na verdade ele gera uma div) invisível e é neste panelLayout que faço o include. Também tenho um botão (a4j:commandButton) que executa uma action que faz este panelLayout ficar visível.
O problema é que quando coloco este a4j:include, dá impressão de que ele não faz o rerender do panelLayout, pois ele não aparece na tela… a action é executada normalmente, mas não aparece.

Se eu remover o a4j:include, a action do botão funciona normalmente, fazendo o panelLayout aparecer.

Alguma idéia do que pode ser? Obrigado.

gustavodelgado

Fazendo alguns testes, pude perceber que o a4j:include não funciona se ele estiver dentro de um fragmento de página (<f:subview>). Não sei se estou fazendo algo errado… mas não estou conseguindo encontrar uma solução :?

adrianospk

Galera to começando agora com o JSP e preciso de ajuda super fácil pra vcs.

atraves de includes carrego menu esquerdo, o topo, o rodapé, e a parte central(conteudo).

Eu queria que ao clicar no link do menu direito abrisse o arquivo dentro da parte central.

Como se eu usa-se Frame e coloca-se target=“conteudo” para especificar onde quero abrir a página, deu pra entender.

To usando esse código abaixo:

<jsp:include page="menu_direito.jsp" flush="true"> <jsp:param name="conteudo" value="menu_direito.jsp"/> </jsp:include>

Me ajudem galera

L

Bom dia Gustavo,

Eu vi vários post teus aqui no GUJ e talvez vc possa me ajudar.

    Estou iniciando o desenvolvimento com Netbeans X ICEFaces X MySQL, e preciso desenvolver um Menu dinâmico que , de acordo com permissões do usuário e vai sendo montado. Você teria um exemplo para me enviar ?

Forte abraço

Criado 14 de agosto de 2007
Ultima resposta 10 de mar. de 2009
Respostas 7
Participantes 5