Olá pessoal,
Estou com dúvida em como o facelets trabalha em relação ao menu e onde os componentes devem estar e como são invocados.
O problema é em fazer o menu funcionar substituindo a área do conteúdo da página.
Quero usar url amigável, já que é um recurso novo.
segue abaixo os códigos.
topo.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<h:form>
<ul id="menu">
<li><h:link outcome="/pag1.xhtml" value="Submit">Pg1</h:link></li>
<li><h:link outcome="/pag2.xhtml" value="Submit">Pg2</h:link></li>
</h:form>
</body>
</html>
rodape.xhtml
<html>
<body>
rodapé da página
</body>
</html>
pag1.xhtml
<html>
<body>
<h1>pagina 1</h1>
</body>
</html>
pag2.xhtml
<html>
<body>
<h1>pagina 2</h1>
</body>
</html>
index.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<div id="topoDIV">
<ui:include src="topo.xhtml"/>
</div>
<div id="conteudoDIV">
<ui:include src="pag1.xhtml"/>
</div>
<div id="rodapeDIV">
<ui:include src="rodape.xhtml"/>
</div>
</body>
</html>
alguém ja construiu algo parecido com um iframe usando facelets ?
acho que estou com um problema de conceito no uso de facelets, alguem pode me ajudar ?
por favor, preciso de ajuda…
Quando tava partindo pra criar IFrame e batucar um pouco javascript , resolvi tentar dinovo e agora foi.
Segue os códigos abaixo:
Template.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="./../resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="./../resources/css/cssLayout.css" rel="stylesheet" type="text/css" />
<title>Facelets Template</title>
</h:head>
<h:body>
<h:form>
<div id="top" class="top">
<ui:insert name="top">Top
<ui:include src="Top.xhtml"/>
</ui:insert>
</div>
<div id="content" class="center_content">
<ui:insert name="content">Content</ui:insert>
</div>
</h:form>
</h:body>
</html>
Top.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
template="./Template.xhtml">
<ui:define name="top">
<h:commandButton value="home" action="TemplateClient?faces-redirect=true" />
<h:commandButton value="home2" action="Teste?faces-redirect=true" />
<h:commandButton value="home3" action="Ok?faces-redirect=true" />
</ui:define>
</ui:composition>
TemplateClient.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="./Template.xhtml">
<ui:define name="content">
template client...
</ui:define>
</ui:composition>
Teste.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="./Template.xhtml">
<ui:define name="content">
teste ...
</ui:define>
</ui:composition>
Ok.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="./Template.xhtml">
<ui:define name="content">
ok ....
</ui:define>
</ui:composition>
kdoigor,
Mas neste caso sou obrigado a utilizar Facelets, certo?
Não poderia usar só o JSF 2.0?
kdoigor
Dezembro 22, 2010, 12:52pm
#6
o facelets ja vem no jsf 2.
Não preciso incluir nenhum jar adicional além do jsf-api.jar e do jsf-impl.jar?
É que o meu NetBeans não está aceitando usar ui:insert, por exemplo.