Seguinte, estou precisando contruir uma página a partir dos dados de outra.
Eu consigo fazer funcionar, mas a questão é que ao carregar a página destino eu preciso do código para carregar um datatable.
Depurando eu percebi depois que a página é renderizada é que os valores são preenchidos, com aqueles inicialmente foram salvos com o savestate.
Um exemplo é que quando seleciono algum opção do comboBox da página destino, a minha datatable é organizada de acordo com o valor selecionado, isso depois dela renderizada, desta forma redenriza corretamente o meu datatable.
Eu preciso que a página destino seja criada com o "idReuniao" da linha da tabela de onde partiu o evento.
Já tentei usando sessão e passagem de parâmetro, só que no construtor do Bean destino o parâmetro é sempre restaurado como nulo.
Parece que os valores salvos no savestate são setados depois que o construdor é executado, com isso minha datatable na página destino vem sem nenhum selectOneMenu marcado.
Alguém poderia... mais uma vez me ajudar. :oops:
Vlw.
<h:form id="cadReuniao" rendered="#{UsuarioSessionBean.usuarioLogado}">
<font face="Verdana,Arial" size="+1">
<center>Cadastro de Reuniões</center>
</font>
<fieldset class="fieldset_cadastro">
<table id="tabela_logoff">
<tr>
<td>*Tema:</td>
<td>
<h:inputText id="temaReuniao" value="#{cadReuniaoBean.tema}" size="50" maxlength="50" styleClass="edit"/>
</td>
</tr>
<tr>
<td>*Local</td>
<td>
<h:inputText id="localReuniao" value="#{cadReuniaoBean.localReuniao}" size="50" maxlength="50" styleClass="edit"/>
</td>
</tr>
<tr>
<td>*Data:</td>
<td>
<rich:calendar id="dataReuniao" value="#{cadReuniaoBean.dataReuniao}" datePattern="dd/MM/yyyy" popup="true" inputSize="8" firstWeekDay="0" showWeeksBar="false" showFooter="true" styleClass="edit"/>
</td>
</tr>
<tr>
<td>*Hora:</td>
<td>
<h:inputText id="horaReuniao" value="#{cadReuniaoBean.horaReuniao}" size="3" maxlength="5" styleClass="edit"/>
</td>
</tr>
</table>
</fieldset>
<table width="800px" id="tabela_logoff">
<tr>
<td width="39%">
<font class="msgAlerta">O (*) indica os campos obrigatórios.</font>
</td>
<td align="center" width="21%">
<h:commandButton id="btnSalvar" value="Salvar" action="#{cadReuniaoBean.cadastrar}" styleClass="cmdBotao"/>
<h:commandButton id="btnLimpar" value="Limpar" action="#{cadReuniaoBean.setNovo}" styleClass="cmdBotao">
<f:setPropertyActionListener value="" target="#{cadReuniaoBean.tema}"/>
<f:setPropertyActionListener value="" target="#{cadReuniaoBean.localReuniao}"/>
<f:setPropertyActionListener value="" target="#{cadReuniaoBean.dataReuniao}"/>
<f:setPropertyActionListener value="" target="#{cadReuniaoBean.horaReuniao}"/>
</h:commandButton>
</td>
<td align="left" width="40%">
<h:messages errorClass="msgError" infoClass="msgInfo" fatalClass="msgError"/>
</td>
</tr>
</table>
</h:form>
<h:form id="lstReunioes" rendered="#{UsuarioSessionBean.usuarioLogado}">
<br><center/><b/>Lista de Reuniões Cadastradas
<hr class="hr">
<div align="center" style="height:224px; overflow:auto;">
<t:dataTable id="lstReunioes" var="lstReunioes" styleClass="tabela_cadastro" headerClass="cabecalho" value="#{cadReuniaoBean.consulta}" rendered="#{! empty cadReuniaoBean.consulta}">
<t:column width="5%">
<center>
<f:facet name="header">
<h:outputText value="Código"/>
</f:facet>
<h:outputText id="lstIdReuniao" value="#{lstReunioes.idReuniao}"/>
</center>
</t:column>
<t:column width="30%">
<center>
<f:facet name="header">
<h:outputText value="Tema"/>
</f:facet>
</center>
<h:outputText id="lstTemaReuniao" value="#{lstReunioes.tema}"/>
</t:column>
<t:column width="26%">
<center>
<f:facet name="header">
<h:outputText value="Local"/>
</f:facet>
</center>
<h:outputText id="lstLocalReuniao" value="#{lstReunioes.localReuniao}"/>
</t:column>
<t:column width="5%">
<center>
<f:facet name="header">
<h:outputText value="Data"/>
</f:facet>
<h:outputText id="lstDataReuniao" value="#{lstReunioes.dataReuniao}"/>
</center>
</t:column>
<t:column width="5%">
<center>
<f:facet name="header">
<h:outputText value="Hora"/>
</f:facet>
<h:outputText id="lstHoraReuniao" value="#{lstReunioes.horaReuniao}"/>
</center>
</t:column>
<t:column width="7%">
<center>
<f:facet name="header">
<h:outputText value="Assuntos"/>
</f:facet>
<h:commandButton id="cadAssunto" action="cadAssuntos" image="imagens/assuntos.gif" alt="Cadastrar Assuntos">
<f:setPropertyActionListener value="#{lstReunioes.idReuniao}" target="#{cadAssuntoBean.idReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.tema}" target="#{cadAssuntoBean.tema}"/>
<f:setPropertyActionListener value="#{lstReunioes.localReuniao}" target="#{cadAssuntoBean.localReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.dataReuniao}" target="#{cadAssuntoBean.dataReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.horaReuniao}" target="#{cadAssuntoBean.horaReuniao}"/>
</h:commandButton>
</center>
</t:column>
<t:column width="7%">
<center>
<f:facet name="header">
<h:outputText value="Part."/>
</f:facet>
<h:commandButton id="cadParticipantes" action="cadParticipante" image="imagens/participantes.jpg" alt="Cadastrar Participantes">
<f:setPropertyActionListener value="#{lstReunioes.idReuniao}" target="#{cadParticipanteBean.idReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.tema}" target="#{cadParticipanteBean.tema}"/>
<f:setPropertyActionListener value="#{lstReunioes.localReuniao}" target="#{cadParticipanteBean.localReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.dataReuniao}" target="#{cadParticipanteBean.dataReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.horaReuniao}" target="#{cadParticipanteBean.horaReuniao}"/>
</h:commandButton>
</center>
</t:column>
<t:column width="7%">
<center>
<f:facet name="header">
<h:outputText value="Alterar"/>
</f:facet>
<h:commandButton id="editarReuniao" action="null" image="imagens/editar.gif" alt="Alterar Cadastro da Reunião">
<f:setPropertyActionListener value="#{lstReunioes.idReuniao}" target="#{cadReuniaoBean.idReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.tema}" target="#{cadReuniaoBean.tema}"/>
<f:setPropertyActionListener value="#{lstReunioes.localReuniao}" target="#{cadReuniaoBean.localReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.dataReuniao}" target="#{cadReuniaoBean.dataReuniao}"/>
<f:setPropertyActionListener value="#{lstReunioes.horaReuniao}" target="#{cadReuniaoBean.horaReuniao}"/>
</h:commandButton>
</center>
</t:column>
<t:column width="7%">
<center>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<h:commandButton id="excluirUsuario" action="#{cadReuniaoBean.excluir}" image="imagens/excluir.gif" alt="Excluir Cadastro da Reunião"
onclick="if (!confirm('Tem certeza que deseja excluir a reunião?')) return false">
<f:setPropertyActionListener value="#{lstReunioes.idReuniao}" target="#{cadReuniaoBean.idReuniao}"/>
</h:commandButton>
</center>
</t:column>
<t:saveState value="#{cadReuniaoBean.idReuniao}"/>
<t:saveState value="#{cadParticipanteBean}"/>
<t:saveState value="#{cadAssuntoBean}"/>
</t:dataTable>
</div>
</h:form>
<a4j:form id="frmCadParticipantes" rendered="#{UsuarioSessionBean.usuarioLogado}">
<fieldset class="fieldset_cadastro">
<table class="tabela_cadastro" width="800px">
<tr>
<td width="5%">Reunião:</td>
<td width="45%">
<h:outputText id="reuniao" value="#{cadParticipanteBean.tema}"/>
</td>
<td width="5%">Local:</td>
<td width="45%" align="left">
<h:outputText id="local" value="#{cadParticipanteBean.localReuniao}"/>
</td>
</tr>
<tr>
<td width="5%">Data:</td>
<td width="45%" align="left">
<h:outputText id="dataReuniao" value="#{cadParticipanteBean.dataReuniao}"/>
</td>
<td width="5%">Hora:</td>
<td width="45%" align="left">
<h:outputText id="horaReuniao" value="#{cadParticipanteBean.horaReuniao}"/>
</td>
</tr>
<tr>
<td width="5%">Cargo:</td>
<td colspan="3">
<t:selectOneMenu id="menuSltCargos" value="#{cadParticipanteBean.idCargo}" styleClass="comboBox">
<f:selectItem itemLabel="Todos" itemValue="0"/>
<f:selectItems id="lstCargos" value="#{cadParticipanteBean.comboBoxCargos}"/>
<a4j:support event="onchange" reRender="lstParticipantes" action="#{cadParticipanteBean.atualizaDataTable}"/>
</t:selectOneMenu>
</td>
</tr>
</table>
</fieldset>
<t:saveState value="#{cadParticipanteBean}"/>
</a4j:form>
<a4j:form id="frmLstCadParticipantes" rendered="#{UsuarioSessionBean.usuarioLogado}">
<table width="800px" id="tabela_logoff">
<tr>
<td align="right" colspan="2" width="60%">
<h:commandButton id="btnSalvar" value="Salvar" styleClass="cmdBotao" action="#{cadParticipanteBean.cadastrar}"/>
<h:commandButton id="btnLimpar" value="Limpar" styleClass="cmdBotao">
</h:commandButton>
</td>
<td align="left" width="40%">
<h:messages errorClass="msgError" infoClass="msgInfo" fatalClass="msgError"/>
</td>
</tr>
</table>
<br><center/><b/>Marque os Participantes que deseja convidar para a Reunião
<div align="center" style="height:211px; overflow:auto;">
<rich:dataTable id="lstParticipantes" var="lstParticipantes" value="#{cadParticipanteBean.listaParticipantes}" styleClass="tabela_cadastro" headerClass="cabecalho" width="780px">
<t:column width="8%">
<center>
<f:facet name="header">
<h:outputText value="Convidar"/>
</f:facet>
<h:selectBooleanCheckbox id="parti" value="#{lstParticipantes.selecionado}"/>
</center>
</t:column>
<t:column width="5%">
<center>
<f:facet name="header">
<h:outputText value="Código"/>
</f:facet>
<h:outputText id="idUsuario" value="#{lstParticipantes.idUsuario}"/>
</center>
</t:column>
<t:column width="32%">
<center>
<f:facet name="header">
<h:outputText value="Nome Completo"/>
</f:facet>
</center>
<h:outputText id="nomeCompleto" value="#{lstParticipantes.nomeCompleto}"/>
</t:column>
<t:column width="25%">
<center>
<f:facet name="header">
<h:outputText value="Cargo"/>
</f:facet>
</center>
<h:outputText id="dscCargo" value="#{lstParticipantes.dscCargo}"/>
</t:column>
<t:column width="25%">
<center>
<f:facet name="header">
<h:outputText value="E-mail"/>
</f:facet>
</center>
<h:outputText id="email" value="#{lstParticipantes.email}"/>
</t:column>
</rich:dataTable>
</div>
<t:saveState value="#{cadParticipanteBean.idReuniao}"/>
</a4j:form>