marcelo.bellissimo:
O mais correto seria você fazer um form só, onde ficaria este botão que dispara a ação, e essas fichas seriam "includes" dentro desse form... não sei como está estruturada essa sua página, mas creio que desta maneira daria certo... os valores só são setados no form ao disparar o submit do mesmo, como você está fazendo isso por um outro botão que não está associado á nenhum form, ele não seta os valores...
Então, eu tentei fazer isso já, só que aí eu clico no botão de salvar ele simplesmenta não executa nenhuma ação e nem mesmo fecha o modal panel.
A estrutura do que fiz está assim:
Primeiramente abro este modalPanel:
<rich:modalPanel id="FichasPanel" style="overflow:auto" height="450" width="880">
<f:facet name="header">
<h:outputText value="Prontuário" />
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:graphicImage value="/images/modal/close.png" id="hidelink2" styleClass="hidelink" />
<rich:componentControl for="FichasPanel" attachTo="hidelink2" operation="hide" event="onclick" />
</h:panelGroup>
</f:facet>
<h:form>
<jsp:include page="Fichas.jsp"></jsp:include>
<h:panelGrid id="pgridEditar" columns="2">
<a4j:commandButton value="Atualizardafsd" action="#{manterProntuario.salvar}" reRender="rpanel" oncomplete="if (#{facesContext.maximumSeverity==null}) #{rich:component('FichasPanel')}.hide();" />
<a4j:commandButton value="Cancelar" action="#{manterProntuario.cancelar}" onclick="#{rich:component('FichasPanel')}.hide();return false;" />
</h:panelGrid>
</h:form>
</rich:modalPanel>
No código acima eu adiciono um include para a jsp que tem o tabPanel das fichas (Fichas.jsp), além disso tem o botão de salvar. Detalhe que ambos estão dentro do h:form.
A página Fichas.jsp é assim:
<rich:tabPanel id="tabpanel" switchType="ajax" width="900" >
<rich:tab id="Prontuário" label="Prontuário">
<f:subview id="subviewProntuario">
<jsp:include page="Fichas/Prontuario.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab id="Anamnese" label="Anamnese" ontableave="#{rich:component('confirmModalPanel')}.show()">
<f:subview id="subviewAnamnese">
<jsp:include page="Fichas/Anamnese.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab label="Endodontia">
<f:subview id="subviewEndodontica">
<jsp:include page="Fichas/Endodontica.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab id="Estomatologia" label="Estomatologia">
<f:subview id="subviewEstomatologia">
<jsp:include page="Fichas/Estomatologia.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab label="Oclusal">
<f:subview id="subviewOclusal">
<jsp:include page="Fichas/Oclusal.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab label="Odontogeriátrica">
<f:subview id="subviewOdontogeriatrica">
<jsp:include page="Fichas/Odontogeriatrica.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab label="Odontopediátrica">
<f:subview id="subviewOdontopediatrica">
<jsp:include page="Fichas/Odontopediatrica.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab label="Periodontia">
<f:subview id="subviewPeriodontia">
<jsp:include page="Fichas/Periodontia.jsp"></jsp:include>
</f:subview>
</rich:tab>
<rich:tab label="Prótese">
<f:subview id="subviewProtese">
<jsp:include page="Fichas/Protese.jsp"></jsp:include>
</f:subview>
</rich:tab>
</rich:tabPanel>
Basicamente eu tenho 8 abas, cada uma com um formulário diferente incluído. Por exemplo, a Anamnese.jsp que segue o mesmo modelo de todas as fichas:
<h:panelGrid columns="1">
<h:outputText value="Você tem ou já teve alguma dessas enfermidades?"></h:outputText>
</h:panelGrid>
<h:panelGrid columns="6">
<h:outputText value="Asma:"></h:outputText>
<h:selectBooleanCheckbox value="#{manterProntuario.currentAnamnese.asma}"></h:selectBooleanCheckbox>
<h:outputText value="Anemia:"></h:outputText>
<h:selectBooleanCheckbox value="#{manterProntuario.currentAnamnese.anemia}"></h:selectBooleanCheckbox>
.
.
.
E assim vai, por mais de 100 campos. Há algo errado no esquema que fiz?