ddleo
Maio 8, 2012, 1:46pm
#1
Pessoal, estou tentando fazer um include dinâmico, mais a minha action que informa a view que será incluida está executando depois do include, fazendo com que eu tenha que clicar duas vezes para incluir a nova view.
Alquém tem alguma ideia de como fazer com que a action ececute antes do include?
Desde já agradeço!!!
como você fez o include? qual lógica usou?
ddleo
Maio 9, 2012, 7:51am
#3
wbdsjunior, Obrigado por responder!!!
Seque o que foi feito:
//Template
[quote]<?xml version="1.0" encoding="ISO-8859-1"?>
-
<script type="text/javascript">
var infoWindowAMShown = false;
var infoWindowAMTimer;
function showModalInfoWindow()
{
infoWindowAMTimer = setTimeout("if(!infoWindowAMShown){Richfaces.showModalPanel('ajaxLoadingModalBox');infoWindowAMShown=true;}", 500);
}
function hideModalInfoWindow()
{
if (infoWindowAMShown) {
Richfaces.hideModalPanel('ajaxLoadingModalBox');
infoWindowAMShown=false;
} else {
if(infoWindowAMTimer)
clearTimeout(infoWindowAMTimer);
}
}
</script>
</head>
<body>
<!-- ajax loading -->
<a4j:status onstart="showModalInfoWindow();" onstop="hideModalInfoWindow();javascript:initPageData()" />
<rich:modalPanel id="ajaxLoadingModalBox" width="350" height="60">
<f:facet name="header">
<h:outputText value="Processo iniciado."/>
</f:facet>
<h:outputText value="Seu pedido esta sendo processado, por favor aquarde."/>
<rich:spacer width="10px"/>
<img src="/SipaWeb/imagens/connect_active_.gif" alt="" />
</rich:modalPanel>
<a4j:outputPanel id="mainOutputPanel">
<ui:insert name="pageHeader">
<ui:include src="/pages/support/commonLayout/header.xhtml"/>
</ui:insert>
<ui:insert name="pageWelcome">
<ui:include src="/pages/support/commonLayout/welcome.xhtml"/>
</ui:insert>
<ui:insert name="pageMainMenu">
<ui:include src="/pages/support/commonLayout/mainMenu.xhtml"/>
</ui:insert>
<!-- bloco principal -->
<a4j:outputPanel ajaxRendered="true" id="mainOutputPanel2">
<a4j:form id="formPrincipal">
<ui:include src="/pages/support/commonLayout/title_teste.xhtml"/>
<ui:include src="/pages/support/commonLayout/messages.xhtml"/>
<ui:insert name="content">
</ui:insert>
</a4j:form>
</a4j:outputPanel>
<ui:insert name="pageFooter">
<ui:include src="/pages/support/commonLayout/footer.xhtml"/>
</ui:insert>
</a4j:outputPanel>
<ui:include src="/pages/support/commonLayout/bottom.xhtml"/>
<script>initPageData();</script>
</body>
[/quote]
////Index.html – Onde eu faço o include dinâmico, setando através do menu a página a ser incluída
[quote]
<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:a4j=“http://richfaces.org/a4j ”
xmlns:rich=“http://richfaces.org/rich ”
xmlns:t=“http://myfaces.apache.org/tomahawk ”
xmlns:c=“http://java.sun.com/jstl/core ”
template="/pages/public/teste/sipaTemplate.xhtml">
<ui:param name="titlePage" value="#{indexController.pagTitle}" />
<ui:define name="content">
<a4j:include viewId="#{indexController.pag}" />
</ui:define>
</ui:composition>[/quote]
Obs: Eu só consigo que o include seja feito no segundo clique.
Se tiver alguma ideia do que seja, fico muito agradecido!!!