Bem, procurei bastante na net, encontrei alguns problemas parecidos mas ninguém encontrou a solução pra isso.
O problema é:
Tenho uma página principal, a qual inclui uma outra página, utilizando <ui:include />. Essa página incluída também pode incluir outra, mas nem sempre.
O fato é, quando eu clico no botão de submit externo a página incluída, os dados dessa página incluída não são submetidos.
Para algumas dessas página eu tenho outros botões que fazem submit e o formulário é submetido sem problemas, o problema á com o botão externo. E nessa página é necessário que seja uzado esse botão externo.
Segue mais ou menos como está a página
paginaPrincipal.xhtml
[code] //código aqui
<a4j:form>
//mais código
<t:div>
<ui:include src="#{beanName.url}" />
</t:div>
<h:commandButton action="#{beanName.salvar}" value="Salvar" />
</a4j:form>[/code]
paginaIncluida.xhtml
[code] //código
//inputText, textArea, rich:editor e etc
//código[/code]
já tentei colocar subview, mas também não funfou.
ps: só tenho um formulário, a página incluída deve utilziar o formulário da página principal.
Abraços
Resolvi postar um código pra vê se ajuda.
esse primeiro é de uma página que é incluída, não tem nenhum botão de submit, mas o conteúdo é submetido sem problema.
O segundo é da página que estou penando :). Ela é bem mais complexa que a outra, mas o que importa é que tem o mesmo sentido, é uma página incluída, com campos e etc. Os dados que eu quero que sejam submetido estão dentro da div com id item_em_analise.
página que funciona
<?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"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:f="http://java.sun.com/jsf/core">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
</head>
<body>
<ui:composition>
<h:panelGrid>
<h:panelGrid columns="3">
<h:outputText id="lAnoBase" value="Ano Base:" styleClass="cssAtributo" />
<h:selectOneMenu id="fAnoBase" value="#{beanExecucaoFluxo.objeto.objeto.anoBase}" styleClass="cssComponente" required="true" >
<f:selectItem itemLabel=" -- Selecione um ano Base -- " itemValue="" />
<f:selectItems value="#{beanExecucaoFluxo.objeto.anos}"/>
</h:selectOneMenu>
<h:message for="fAnoBase" />
</h:panelGrid>
<h:panelGrid columns="3">
<h:outputText id="lEmpresa" value="Empresa:" styleClass="cssAtributo" />
<h:selectOneMenu id="fEmpresa" value="#{beanExecucaoFluxo.objeto.objeto.empresa}" styleClass="cssComponente" required="true">
<f:selectItem itemLabel=" -- Selecione uma Empresa -- " itemValue="" />
<f:selectItems value="#{beanExecucaoFluxo.objeto.empresas}"/>
<f:converter converterId="SelectOneMenuConverter"/>
</h:selectOneMenu>
<h:message for="fEmpresa" />
</h:panelGrid>
</h:panelGrid>
</ui:composition>
</body>
</html>
página que não funciona
<?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"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:f="http://java.sun.com/jsf/core">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
</head>
<body>
<ui:composition>
<rich:toolBar style="padding: 0px">
<h:commandButton style="padding: 0px" value="Visualizar RD da Empresa" />
<h:commandButton style="padding: 0px" value="Máquina de Busca" />
<h:commandButton style="padding: 0px" value="Gerador de Consulta" />
<h:commandButton style="padding: 0px" value="Consultas Cadastradas" onclick="this.form.target='_blank'" />
<h:commandButton style="padding: 0px" value="Selecionar Modelo de Saída" />
</rich:toolBar>
<h:panelGrid width="100%" id="gridPrincipal">
<rich:panel style="text-align: center;">
<b >Empresa:</b> <span style="font-size: 16px">#{beanAvaliacaoTecnico.objeto.empresa.pessoa }</span>
<br />
<b >CNPJ:</b> <span style="font-size: 16px">#{beanAvaliacaoTecnico.objeto.empresa.inscricaoSuframa }</span>
<br/>
<b >Inscrição Suframa:</b> <span style="font-size: 16px">#{beanAvaliacaoTecnico.objeto.empresa.inscricaoSuframa }</span>
<br />
<b >Ano base:</b> <span style="font-size: 16px">#{beanAvaliacaoTecnico.objeto.anoBase }</span>
</rich:panel>
<t:div>
<h:outputText value="" id="messageParecer" />
<h:message for="messageParecer" styleClass="sucessoMessage" />
</t:div>
<t:div>
<h:outputText value="Selecionar Modelo de Parecer" rendered="#{beanAvaliacaoTecnico.renderedSelecaoModelo }" style="font-weight: bold" />
<a4j:commandLink action="#{beanAvaliacaoTecnico.irSelecionarModelo }" value="Selecionar Modelo de Parecer" rendered="#{beanAvaliacaoTecnico.renderedSelecaoItensComporAnalise or beanAvaliacaoTecnico.renderedSelecaoItemASerAnalisado or beanAvaliacaoTecnico.renderedItemSendoAnalisado}" reRender="gridPrincipal" style="font-weight: bold" />
<h:outputText value=" > " rendered="#{beanAvaliacaoTecnico.renderedSelecaoItensComporAnalise }"/>
<h:outputText value="Selecionar Itens do Modelo" rendered="#{beanAvaliacaoTecnico.renderedSelecaoItensComporAnalise }" style="font-weight: bold"/>
<h:outputText value=" > " rendered="#{beanAvaliacaoTecnico.renderedSelecaoItemASerAnalisado or beanAvaliacaoTecnico.renderedItemSendoAnalisado }" />
<a4j:commandLink action="#{beanAvaliacaoTecnico.irSelecionarItens }" value="Selecionar Itens do Modelo" rendered="#{beanAvaliacaoTecnico.renderedSelecaoItemASerAnalisado or beanAvaliacaoTecnico.renderedItemSendoAnalisado }" reRender="gridPrincipal" style="font-weight: bold"/>
<h:outputText value=" > " rendered="#{beanAvaliacaoTecnico.renderedSelecaoItemASerAnalisado }" />
<h:outputText value="Selecionar Item a ser Analisado" rendered="#{beanAvaliacaoTecnico.renderedSelecaoItemASerAnalisado }"/>
<h:outputText value=" > " rendered="#{beanAvaliacaoTecnico.renderedItemSendoAnalisado}"/>
<a4j:commandLink action="#{beanAvaliacaoTecnico.irSelecionarItem }" value="Selecionar Item a ser Analisado" rendered="#{beanAvaliacaoTecnico.renderedItemSendoAnalisado }" reRender="gridPrincipal" style="font-weight: bold"/>
<h:outputText value=" > " rendered="#{beanAvaliacaoTecnico.renderedItemSendoAnalisado}"/>
<h:outputText value="Analisando Item: #{beanAvaliacaoTecnico.itemSendoAnalisado.itemModelo.nome }" rendered="#{beanAvaliacaoTecnico.renderedItemSendoAnalisado}"/>
</t:div>
<t:div rendered="#{beanAvaliacaoTecnico.renderedSelecaoModelo }">
Aqui você deve selecionar qual Modelo de Parecer você deseja utilizar para realizar sua análise. Caso você ainda não está seguro de qual
modelo você vai utilizar, veja o relatório da empresa que está disponibilizado acima!
<br /><br />
<rich:dataTable value="#{beanAvaliacaoTecnico.modelosDeParecer }" var="template">
<rich:column>
<f:facet name="header">Nome</f:facet>
#{template.nome }
</rich:column>
<rich:column>
<f:facet name="header">Opções</f:facet>
<a4j:commandLink value="Visualizar" actionListener="#{beanAvaliacaoTecnico.visulaizarTemplate}" reRender="gridPrincipal" oncomplete="javascript:Richfaces.showModalPanel('previl')">
<f:param name="value" value="#{template}" />
<f:param name="value" value="1" />
<rich:componentControl attachTo="previl" operation="show" />
</a4j:commandLink>
----
<a4j:commandLink value="Selecionar" actionListener="#{beanAvaliacaoTecnico.selecionarModelo }" reRender="gridPrincipal">
<f:param name="value" value="#{template }" />
<f:param name="value" value="1" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
<br />
<a4j:commandButton action="#{beanAvaliacaoTecnico.irSelecionarItens }" value="Prosseguir" reRender="gridPrincipal" />
</t:div>
<t:div rendered="#{beanAvaliacaoTecnico.renderedSelecaoItensComporAnalise }">
Aqui você deve selecionar os itens que você quer que componha seu parecer. Só deixe marcado os itens que vão compor seu parecer.<br />
Você pode visualizar o formato de saída desse item clicando em visualizar ao lado do item.
<rich:dataTable value="#{beanAvaliacaoTecnico.itensModelo }" var="linha">
<f:facet name="header">ITENS</f:facet>
<rich:column width="5%" style="text-align:center">
<f:facet name="header">
<h:selectBooleanCheckbox id="chkTodos" styleClass="cssComponente" onclick="checkUnAll(document.formTemplate, this, 'chk')" />
</f:facet>
<h:selectBooleanCheckbox disabled="#{linha.elemento.obrigatorio }" id="chk" value="#{linha.selecionado}" styleClass="cssComponente" onclick="desmarcaCheckTodos(document.formTemplate, this, 'chkTodos')" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Item" />
</f:facet>
#{linha.elemento.nome }
</rich:column>
<rich:column>
<f:facet name="header">Visualizar</f:facet>
<a4j:commandLink value="Visualizar" actionListener="#{beanAvaliacaoTecnico.visulaizarItem}" reRender="gridPrincipal" oncomplete="javascript:Richfaces.showModalPanel('previl')">
<f:param name="value" value="#{linha.elemento}" />
<f:param name="value" value="1"/>
<rich:componentControl attachTo="previl" operation="show" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
<a4j:commandButton action="#{beanAvaliacaoTecnico.selecionarItens }" value="Salvar Itens" reRender="gridPrincipal" />
<a4j:commandButton action="#{beanAvaliacaoTecnico.irSelecionarItem }" value="Salvar Itens e Prosseguir" reRender="gridPrincipal" />
</t:div>
<rich:modalPanel id="previl" height="600" width="1200" style="overflow:auto; " minHeight="300" minWidth="650" >
<f:facet name="header">
<h:outputText value="SQL" />
</f:facet>
<h:inputTextarea id="cont" value="#{beanAvaliacaoTecnico.html}" />
<f:verbatim>
<script>
var oFCKeditor = new FCKeditor('formTemplate:cont', '100%', '500', 'EmptyToolbar', '') ;
oFCKeditor.BasePath = "../fckeditor/";
oFCKeditor.ReplaceTextarea();
</script>
</f:verbatim>
<f:facet name="controls">
<h:panelGroup>
<h:outputText value="[ X ] " id="s" title="sair" style="cursor:pointer" />
<rich:componentControl for="previl" id="sair" attachTo="s" operation="hide" event="onclick" />
</h:panelGroup>
</f:facet>
</rich:modalPanel>
<t:div rendered="#{beanAvaliacaoTecnico.renderedSelecaoItemASerAnalisado }">
<a4j:repeat value="#{beanAvaliacaoTecnico.objeto.itensAnalise}" var="linha">
<a4j:commandLink actionListener="#{beanAvaliacaoTecnico.selecionarItem}" reRender="gridPrincipal">
<f:param name="value" value="#{linha}" />
<f:param name="value" value="1" />
<h:outputText value="#{linha.itemModelo.nome}"/>
<h:outputText rendered="#{linha.visitado}" value="** Visitado **"/>
</a4j:commandLink>
<br />
</a4j:repeat>
</t:div>
<t:div rendered="#{beanAvaliacaoTecnico.renderedItemSendoAnalisado }" id="item_em_analise">
<t:div rendered="#{beanAvaliacaoTecnico.itemContemPagina}">
<ui:include src="#{beanAvaliacaoTecnico.itemSendoAnalisado.itemModelo.paginaExecutora }"/>
</t:div>
<t:div rendered="#{beanAvaliacaoTecnico.itemSendoAnalisado.itemModelo.analisePeloEditor }">
<t:div>
<h:inputTextarea id="conteudo" value="#{beanAvaliacaoTecnico.itemSendoAnalisado.conteudo}"/>
<f:verbatim>
<script>
var oFCKeditor = new FCKeditor('formTemplate:conteudo', '100%', '500', 'Default', '') ;
oFCKeditor.BasePath = "../fckeditor/";
oFCKeditor.ReplaceTextarea();
</script>
</f:verbatim>
</t:div>
<br />
<h:message for="conteudo" />
</t:div>
</t:div>
</h:panelGrid>
</ui:composition>
</body>
</html>