Ajuda com JSF: <a4j:include> - RESOLVIDO

6 respostas
J

Olá pessoal,

Estou começando agora com JSF depois de um longo e tenebroso inverno de Struts e estou com uma dúvida que está me tirando o sono faz dias!!!

Quero inserir uma página dinamicamente através de um Menu, daqueles estilinhos básicos (Menu a esquerda + Cabeçalho + COnteúdo a direita).
Para começar estou apenas tentando inserir uma página externa através da tag <a4j:include> desta maneira:
Página Teste que irá conter uma outra (o menu):

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

&lt;ui:composition	xmlns="http://www.w3.org/1999/xhtml"
				xmlns:h="http://java.sun.com/jsf/html"
				xmlns:f="http://java.sun.com/jsf/core"
				xmlns:ui="http://java.sun.com/jsf/facelets"
				xmlns:rich="http://richfaces.org/rich"
				xmlns:richfaces="http://richfaces.ajax4jsf.org/rich"
				xmlns:ajax="https://ajax4jsf.dev.java.net/ajax"
				xmlns:a4j="http://richfaces.org/a4j"&gt;
	&lt;f:view id="teste"&gt;
		&lt;h:outputText value="teste aqui;;;" /&gt;
		
		&lt;a4j:outputPanel&gt;
			&lt;ajax:include viewId="/pages/menu.xhtml" /&gt;
		&lt;/a4j:outputPanel&gt;
		
	&lt;/f:view&gt;
&lt;/ui:composition&gt;

Abaixo seria a página do menu:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;  
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

&lt;ui:composition	xmlns="http://www.w3.org/1999/xhtml"
				xmlns:ui="http://java.sun.com/jsf/facelets"
				xmlns:h="http://java.sun.com/jsf/html"
				xmlns:f="http://java.sun.com/jsf/core"
				xmlns:rich="http://richfaces.org/rich"
				xmlns:richfaces="http://richfaces.ajax4jsf.org/rich"
				xmlns:ajax="https://ajax4jsf.dev.java.net/ajax"
				xmlns:a4j="http://richfaces.org/a4j"&gt;
&lt;f:subview id="subMenu"&gt;
	&lt;rich:panelMenu style="width:200px" mode="ajax"
		iconExpandedGroup="disc" iconCollapsedGroup="disc"
		iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right"
		iconCollapsedTopGroup="chevronDown"&gt;
		&lt;rich:panelMenuGroup label="Ponto Eletrônico"&gt;
			&lt;rich:panelMenuItem label="Marcar"
				action="#{marcaPonto.getPontoEletronico}"&gt;
				&lt;a4j:keepAlive beanName="marcaPonto" /&gt;
				&lt;f:param name="current" value="Item 1" /&gt;
			&lt;/rich:panelMenuItem&gt;
		&lt;/rich:panelMenuGroup&gt;
		&lt;rich:panelMenuGroup label="Group 2"&gt;
			&lt;rich:panelMenuItem label="Item 2.1" action="#"&gt;
				&lt;f:param name="current" value="Item 2.1" /&gt;
			&lt;/rich:panelMenuItem&gt;
			&lt;rich:panelMenuItem label="Item 2.2" action="#"&gt;
				&lt;f:param name="current" value="Item 2.2" /&gt;
			&lt;/rich:panelMenuItem&gt;
			&lt;rich:panelMenuItem label="Item 2.3" action="#"&gt;
				&lt;f:param name="current" value="Item 2.3" /&gt;
			&lt;/rich:panelMenuItem&gt;
			&lt;rich:panelMenuGroup label="Group 2.4"&gt;
				&lt;rich:panelMenuItem label="Item 2.4.1" action="#"&gt;
					&lt;f:param name="current" value="Item 2.4.1" /&gt;
				&lt;/rich:panelMenuItem&gt;
				&lt;rich:panelMenuItem label="Item 2.4.2" action="#"&gt;
					&lt;f:param name="current" value="Item 2.4.2" /&gt;
				&lt;/rich:panelMenuItem&gt;
				&lt;rich:panelMenuItem label="Item 2.4.3" action="#"&gt;
					&lt;f:param name="current" value="Item 2.4.3" /&gt;
				&lt;/rich:panelMenuItem&gt;
			&lt;/rich:panelMenuGroup&gt;
			&lt;rich:panelMenuItem label="Item 2.5" action="#"&gt;
				&lt;f:param name="current" value="Item 2.5" /&gt;
			&lt;/rich:panelMenuItem&gt;
		&lt;/rich:panelMenuGroup&gt;
		&lt;rich:panelMenuGroup label="Group 3"&gt;
			&lt;rich:panelMenuItem label="Item 3.1" action="#"&gt;
				&lt;f:param name="current" value="Item 3.1" /&gt;
			&lt;/rich:panelMenuItem&gt;
			&lt;rich:panelMenuItem label="Item 3.2" action="#"&gt;
				&lt;f:param name="current" value="Item 3.2" /&gt;
			&lt;/rich:panelMenuItem&gt;
			&lt;rich:panelMenuItem label="Item 3.3" action="#"&gt;
				&lt;f:param name="current" value="Item 3.3" /&gt;
			&lt;/rich:panelMenuItem&gt;
		&lt;/rich:panelMenuGroup&gt;
	&lt;/rich:panelMenu&gt;
&lt;/f:subview&gt;	
&lt;/ui:composition&gt;

Tudo funciona perfeitamente sozinho, mas quando coloco a chamada Ajax dentro da primeira página dá o seguinte erro:

09:26:09,006 ERROR [STDERR] 23/03/2009 09:26:09 com.sun.facelets.FaceletViewHandler handleRenderException
SEVERE: Error Rendering View[/pages/teste.xhtml]
java.io.NotSerializableException: com.sun.faces.context.FacesContextImpl
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
	at java.util.HashMap.writeObject(HashMap.java:1000)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
	at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:244)
	at javax.faces.render.ResponseStateManager.writeState(ResponseStateManager.java:155)
	at org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:294)
	at org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:256)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:606)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
	at java.lang.Thread.run(Thread.java:619)

Desde já agradeço a colaboração galera!

Abraço.

6 Respostas

G

eu to usando a mesma estrutura q vc, tenho varios includes na minha pagina, e o menu, remete uma string url, pra um include, exemplo…

item do menu <f:param id="url" value="endereçoDoXhtml"/>

e na pagina q vai exibir o conteudo tenho um include do facelets(alias, todos os includes q fasso sao com o facelets), que pega o valor da url atravez do metodo do mb …

<a4j:outputPanel ajaxRendered="true"> <ui:include src="#{meuMB.url}"/> </a4j:outputPanel>

a diferença é q eu tenho os includes do facelets, uso eles pq, tive alguns problemas com includes em cascata utilisando o a4j, alguns metodos n eram chamados utilisando o a4j:include.

J

Olá pessoal,

Primeiro quero agradecer ao “guimoz” pela atenção… a dica valeu para outra dúvida sim, mas neste caso eu continuei utilizando a tag do Ajax mesmo!

Os problemas eram dois:

&lt;a4j:keepAlive beanName="marcaPonto" /&gt; &lt;f:param name="current" value="Item 1" /&gt;

O Bean não estava com escopo de sessão e o parâmetro passado com o name “current” nem existia… falta de atenção!

Mais uma vez obrigado pela ajuda!

Abraço!

M

Pessoal, Boa noite, estou iniciando agora e não consigo fazer a página do área conteúdo mudar.

Segue os códigos:

menu.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:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:a4j=“http://richfaces.org/a4j
xmlns:rich=“http://richfaces.org/rich
xmlns:ui=“http://java.sun.com/jsf/facelets”>
<head>
<link href="./css/menu.css" rel=“stylesheet” type=“text/css” />
</head>
<body>
<h:form id=“form1”>
<f:subview id=“subMenu”>
<h:panelGrid columns=“2” columnClasses=“cols” width=“100%”>
<rich:panelMenu style=“width:186px” mode=“ajax”
iconExpandedGroup=“disc” iconCollapsedGroup=“disc”
iconExpandedTopGroup=“chevronUp” iconGroupTopPosition=“right”
iconCollapsedTopGroup=“chevronDown” iconCollapsedTopPosition=“right” >
<rich:panelMenuGroup id=“grpCadastro” label=“Cadastro”>
<rich:panelMenuItem label=“Cliente” action="#{menu.getCorrente}">
<a4j:keepAlive beanName=“menu” />
<f:param name=“corrente” value=“frmCliente.xhtml”/>
</rich:panelMenuItem>
<rich:panelMenuItem id=“Item_1_2” label=“Cidade” action="#{menu.corrente}">
<f:param name=“current” value=“Item 1.2”/>
</rich:panelMenuItem>
<rich:panelMenuItem id=“Item_1_3” label=“Usuário” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 1.3”/>
</rich:panelMenuItem>
</rich:panelMenuGroup>
<rich:panelMenuGroup id=“grpOperacoes” label=“Operações”>
<rich:panelMenuItem id=“Item_2_1” label=“Vendas” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 2.1”/>
</rich:panelMenuItem>
<rich:panelMenuItem id=“Item_2_2” label=“Orçamento” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 2.2”/>
</rich:panelMenuItem>
<rich:panelMenuGroup label=“Group 2.4”>
<rich:panelMenuItem id=“Item_2_4_1” label=“Item 2.4.1” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 2.4.1”/>
</rich:panelMenuItem>
</rich:panelMenuGroup>
<rich:panelMenuItem id=“Item_2_5” label=“Item 2.5” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 2.5”/>
</rich:panelMenuItem>
</rich:panelMenuGroup>
<rich:panelMenuGroup id=“Group3” label=“Group 3”>
<rich:panelMenuItem id=“Item_3_1” label=“Item 3.1” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 3.1”/>
</rich:panelMenuItem>
<rich:panelMenuItem id=“Item_3_2” label=“Item 3.2” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 3.2”/>
</rich:panelMenuItem>
<rich:panelMenuItem id=“Item_3_3” label=“Item 3.3” action="#{panelMenu.updateCurrent}">
<f:param name=“current” value=“Item 3.3”/>
</rich:panelMenuItem>
</rich:panelMenuGroup>
</rich:panelMenu>
<rich:panel>
<a4j:outputPanel ajaxRendered=“true”>
<h:outputText value="#{menu.corrente} selected" id=“current”/>
</a4j:outputPanel>
</rich:panel>
</h:panelGrid>
</f:subview>
</h:form>
</body>
</html>

o código da xhtml - principal

<?xml version=“1.0” encoding=“ISO-8859-1” ?>
<!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:a4j=“http://richfaces.org/a4j
xmlns:f=“http://java.sun.com/jsf/core
xmlns:rich=“http://richfaces.org/rich
xmlns:ui=“http://java.sun.com/jsf/facelets”>

<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=ISO-8859-1” />
<title>Insert title here </title>
</head>
<body>
<ui:composition template=“modelo.xhtml”>
<ui:define name=“menu”>
<ui:include src=“menu.xhtml” />
</ui:define>
<ui:define name=“conteudo”>
<a4j:outputPanel ajaxRendered=“true”>
<a4j:include viewId="#{menu.corrente}"/>
</a4j:outputPanel>

&lt;/ui:define&gt;
   &lt;ui:define name="rodape"&gt;Desenvolvido por:  Woodpecker&lt;/ui:define&gt;
&lt;/ui:composition&gt;

</body>
</html>

Bean

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package br.appbcs.view;

/**
*

  • @author neves
    */
    public class menu {

    private String corrente;

    /** Creates a new instance of menu */
    
    public menu() {
    
    this.setCorrente(frmPadrao.xhtml);
    
    }
    

    /**

    • @return the corrente
      */
      public String getCorrente() {
      return corrente;
      }

    /**

    • @param corrente the corrente to set
      */
      public void setCorrente(String corrente) {
      this.corrente = corrente;
      }
      }
M

Preciso de ajuda, pois procurei exemplos e ainda não achei nenhum.

abs,

janjan

aprender a usar as tags é fundamental para que o pessoal se anime a ler seu código

assim chega a ser triste…

abraços!!!

M

Conforme solicitado segue agora dentro de tags…

Segue os códigos:

menu.xhtml

&lt;?xml version='1.0' encoding='UTF-8' ?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets"&gt;
&lt;head&gt;
&lt;link href="./css/menu.css" rel="stylesheet" type="text/css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h:form id="form1"&gt;
&lt;f:subview id="subMenu"&gt;
&lt;h:panelGrid columns="2" columnClasses="cols" width="100%"&gt;
&lt;rich:panelMenu style="width:186px" mode="ajax"
iconExpandedGroup="disc" iconCollapsedGroup="disc"
iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right"
iconCollapsedTopGroup="chevronDown" iconCollapsedTopPosition="right" &gt;
&lt;rich:panelMenuGroup id="grpCadastro" label="Cadastro"&gt;
&lt;rich:panelMenuItem label="Cliente" action="#{menu.getCorrente}"&gt;
&lt;a4j:keepAlive beanName="menu" /&gt;
&lt;f:param name="corrente" value="frmCliente.xhtml"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;rich:panelMenuItem id="Item_1_2" label="Cidade" action="#{menu.corrente}"&gt;
&lt;f:param name="current" value="Item 1.2"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;rich:panelMenuItem id="Item_1_3" label="Usuário" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 1.3"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;/rich:panelMenuGroup&gt;
&lt;rich:panelMenuGroup id="grpOperacoes" label="Operações"&gt;
&lt;rich:panelMenuItem id="Item_2_1" label="Vendas" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 2.1"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;rich:panelMenuItem id="Item_2_2" label="Orçamento" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 2.2"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;rich:panelMenuGroup label="Group 2.4"&gt;
&lt;rich:panelMenuItem id="Item_2_4_1" label="Item 2.4.1" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 2.4.1"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;/rich:panelMenuGroup&gt;
&lt;rich:panelMenuItem id="Item_2_5" label="Item 2.5" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 2.5"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;/rich:panelMenuGroup&gt;
&lt;rich:panelMenuGroup id="Group3" label="Group 3"&gt;
&lt;rich:panelMenuItem id="Item_3_1" label="Item 3.1" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 3.1"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;rich:panelMenuItem id="Item_3_2" label="Item 3.2" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 3.2"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;rich:panelMenuItem id="Item_3_3" label="Item 3.3" action="#{panelMenu.updateCurrent}"&gt;
&lt;f:param name="current" value="Item 3.3"/&gt;
&lt;/rich:panelMenuItem&gt;
&lt;/rich:panelMenuGroup&gt;
&lt;/rich:panelMenu&gt;
&lt;rich:panel&gt;
&lt;a4j:outputPanel ajaxRendered="true"&gt;
&lt;h:outputText value="#{menu.corrente} selected" id="current"/&gt;
&lt;/a4j:outputPanel&gt;
&lt;/rich:panel&gt;
&lt;/h:panelGrid&gt;
&lt;/f:subview&gt;
&lt;/h:form&gt;
&lt;/body&gt;
&lt;/html&gt;

o código da xhtml - principal

&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets"&gt;

&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /&gt;
&lt;title&gt;Insert title here &lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;ui:composition template="modelo.xhtml"&gt;
&lt;ui:define name="menu"&gt;
&lt;ui:include src="menu.xhtml" /&gt;
&lt;/ui:define&gt;
&lt;ui:define name="conteudo"&gt;
&lt;a4j:outputPanel ajaxRendered="true"&gt;
&lt;a4j:include viewId="#{menu.corrente}"/&gt;
&lt;/a4j:outputPanel&gt;

&lt;/ui:define&gt;
&lt;ui:define name="rodape"&gt;Desenvolvido por: Woodpecker&lt;/ui:define&gt;
&lt;/ui:composition&gt;
&lt;/body&gt;
&lt;/html&gt;

Bean

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.appbcs.view;

/**
*
* @author neves
*/
public class menu {

private String corrente;

/** Creates a new instance of menu */
public menu() {
this.setCorrente("frmPadrao.xhtml");
}

/**
* @return the corrente
*/
public String getCorrente() {
return corrente;
}

/**
* @param corrente the corrente to set
*/
public void setCorrente(String corrente) {
this.corrente = corrente;
}
}
Criado 23 de março de 2009
Ultima resposta 11 de abr. de 2009
Respostas 6
Participantes 4