Pessoal eu sei que muitos aqui ja perguntaram algo sobre isso aqui, mas eu estou quebrando a cabeça em um algo muito parecido, porém em todos os tópicos que eu olhei não esta exatamente igual ao meu problema. Irei explicar melhor.
Tenho uma página, com um form e um botão. No momento que clico no botão é excutada um action que chama um managedbean para validar algumas coisas no form, se houver uma inconsistência nos dados eu preciso abrir um modal informando que estão faltando dados, e perguntando se mesmo assim o usuário deseja continuar, com um botão para “SIM” ou “NÃO”, e se ele clicar em sim eu chamo a action que vai salvar os dados, mas se ele clicar em nao eu chamo a action que retorna para a tela de form com os campos faltantes.
Acontece que até abre o meu modalpanel, mas quando clico em algum botão “SIM” ou “Não”, não acontece nada.
Este botão esta dentro do meu form, e chama a action que valida os trechos escolhidos.
[code]<h:commandButton action="#{cadastrarPassageirosForm.validarTrechos}"
id=“reservar”
onclick=“javascript:showModalMessage(); javascript:Richfaces.showModalPanel(‘modalPanelAguarde’);”
onrendered="#{!carrinho.existemRegrasCancelamento}"
styleClass="#{cadastrarPassageirosForm.comprarOnline ? ‘reservar’ : ‘solicitar’}"
value="#{cadastrarPassageirosForm.comprarOnline ? ‘reservar >>’ : ‘solicitar >>’}">
<a4j:support event="onclick" reRender="panelRegraCancelamento, panelRegraCancelamentoModal, panelCarrinhoNaoVazio"
onsubmit="javascript:showModalMessage(); javascript:Richfaces.showModalPanel('modalPanelAguarde');}"
oncomplete="javascript:hideModalMessage(); javascript:Richfaces.hideModalPanel('modalPanelAguarde');"/>
</h:commandButton>[/code]
no managed bean eu valido.
public String validarTrechos() {
if (dadosSessao.isProdutoFacil()) {
for (TrechoSystur trecho : getDadosSessao().getTrechosSystur()) {
if (trecho.getItemCarrinho() == null) {
FacesContext fc = FacesContext.getCurrentInstance();
String msg = "Ainda faltam trechos para serem informados";
FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg);
fc.addMessage("frmCadastrarPassageiros", fm);
return null;
}
}
}
return reservar();
}
se o facesContext tiver uma mensagem eu renderizo o meu modalpanel, como segue abaixo
<rich:modalPanel id="trechosAvisoInnerPanel"
width="300"
tridentIVEngineSelectBehavior="hide"
autosized="true"
showWhenRendered="true"
rendered="#{(not empty facesContext.maximumSeverity) and (facesContext.maximumSeverity eq 'Info')}">
<f:facet name="header">
<h:outputText value="Aviso"/>
</f:facet>
<h:form id="frmTrechosAviso">
<table width="100%" border="0" cellpadding="4" cellspacing="1">
<tr>
<h:outputText value="Existem trechos sem hotéis, deseja incluir mais hotéis?"/>
</tr>
<tr></tr>
<tr>
<td style="text-align:center;">
<a4j:commandButton id="sim"
value="Sim"
style="text-align:left;"
action="#{cadastrarPassageirosForm.voltarPaginaPesquisa}"
oncomplete="javascript:Richfaces.hideModalPanel('trechosAvisoInnerPanel');return true;"/>
</td>
<td style="text-align:center;">
<a4j:commandButton id="nao"
style="text-align:right;"
value="Nao"
action="#{cadastrarPassageirosForm.reservar}"
oncomplete="javascript:Richfaces.hideModalPanel('trechosAvisoInnerPanel');return true;"/>
</td>
</tr>
</table>
</h:form>
</rich:modalPanel>
só que se eu clicar em algum destes botões nada acontece, alguém pode me ajudar? ja passou pela mesmo situação?