Pessoal,
Estou com problema em um formulário de cadastro dentro de um rich:modalPanel pois não estou conseguindo validar os campos obrigatórios. Ou seja, quando pressiono o botão salvar é retornado para uma tela onde lista todos os registros cadastrados e não permanece no modalPanel informando que não foi feito o cadastro pois existiam campos obrigatórios que não foram preenchidos. Quando entro novamente no panel de cadastro, aparece a tela com as mensagens de campos obrigatórios não preenchidos.
O que posso fazer para permanecer no formulario do rich:modalPanel ate que se informe os dados obrigatórios sem que o mesmo feche sem essas informações?
<rich:modalPanel id="panelNovo" width="950" height="880">
<rich:panel id="panelCadastroUsuario" header="Cadastro de Config Formatação">
<h:form id="formPanel">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Cadastro de Config Formatação"></h:outputText>
</h:panelGroup>
</f:facet>
<h:inputHidden id="validateCreateField" value="#{configFormatacaoControle.configFormatacao.idConfigFormatacao}" />
<h:outputText value="Descricao: " styleClass="fontFields"/><br />
<h:inputText id="descricao" value="#{configFormatacaoControle.configFormatacao.descricao}" title="Descrição" size="100" /><br />
<h:outputText value="Nome EJB: " styleClass="fontFields"/><br />
<h:inputText id="nomeEjb" value="#{configFormatacaoControle.configFormatacao.nomeEjb}" title="Nome Ejb" size="100" required="true" requiredMessage="O Campo Nome EJB é obrigatório."/> <h:message for="nomeEjb" styleClass="camposObrigatorios"/><br />
<h:outputText value="Serviço: " styleClass="fontFields"/><br />
<h:selectOneMenu id="cbServico"
value="#{configFormatacaoControle.configFormatacao.tbServico}" rendered="true" immediate="true" converter="#{configFormatacaoControle.converter}">
<f:selectItems value="#{configFormatacaoControle.listaServicosCombo}" />
</h:selectOneMenu><br />
<h:outputText value="Path Raiz Linux: " styleClass="fontFields"/><br />
<h:inputText id="pathRaizLinux" value="#{configFormatacaoControle.configFormatacao.pathRaizLinux}" title="Path Raiz Linux" size="100" /><br />
<h:outputText value="Path Raiz Windows: " styleClass="fontFields"/><br />
<h:inputText id="pathRaizWindos" value="#{configFormatacaoControle.configFormatacao.pathRaizWindos}" title="Path Raiz Windows" size="100" /><br />
<h:outputText value="Diretorio Spool: " styleClass="fontFields"/><br />
<h:inputText id="diretorioSpool" value="#{configFormatacaoControle.configFormatacao.diretorioSpool}" title="Diretorio Spool" size="100" required="true" requiredMessage="O Campo Diretorio Spool é obrigatório."/>
<h:message for="diretorioSpool" styleClass="camposObrigatorios"/><br />
<h:outputText value="Diretorio Processamento: " styleClass="fontFields"/><br />
<h:inputText id="diretorioProcessamento" value="#{configFormatacaoControle.configFormatacao.diretorioProcessamento}" title="Diretorio Processamento" size="100" required="true" requiredMessage="O Campo Diretorio Processamento é obrigatório.">
</h:inputText> <h:message for="diretorioProcessamento" styleClass="camposObrigatorios"/><br />
<h:outputText value="Diretorio Liberados: " styleClass="fontFields"/><br />
<h:inputText id="diretorioLiberados" value="#{configFormatacaoControle.configFormatacao.diretorioLiberados}" title="Diretorio Liberados" size="100">
</h:inputText><br />
<h:outputText value="Path Armazenamento: " styleClass="fontFields"/><br />
<h:inputText id="pathArmazenamento" value="#{configFormatacaoControle.configFormatacao.pathArmazenamento}" title="Path Armazenamento" size="100" /> <br />
<h:outputText value="Gera Gravação Serviço: " styleClass="fontFields"/>
<h:selectOneRadio id="geraGravacaoServico" value="#{configFormatacaoControle.configFormatacao.geraGravacaoServico}">
<f:selectItem itemLabel="Sim" itemValue="1" />
<f:selectItem itemLabel="Não" itemValue="0" />
</h:selectOneRadio><br />
<h:outputText value="Gera SOS Laser: " styleClass="fontFields"/>
<h:selectOneRadio id="geraSosLaser" value="#{configFormatacaoControle.configFormatacao.geraSosLaser}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Grava Mídia: " styleClass="fontFields"/>
<h:selectOneRadio id="gravaMidia" value="#{configFormatacaoControle.configFormatacao.gravaMidia}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Grava Journal: " styleClass="fontFields"/>
<h:selectOneRadio id="gravaJournal" value="#{configFormatacaoControle.configFormatacao.gravaJournal}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Gera Numero Lote: " styleClass="fontFields"/>
<h:selectOneRadio id="geraNumeroLote" value="#{configFormatacaoControle.configFormatacao.geraNumeroLote}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Lote por Núcleo: " styleClass="fontFields"/>
<h:selectOneRadio id="lotePorNucleo" value="#{configFormatacaoControle.configFormatacao.lotePorNucleo}" >
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Xml Config Liberados: " styleClass="fontFields"/><br />
<h:inputTextarea id="xmlConfigLiberados" value="#{configFormatacaoControle.configFormatacao.xmlConfigLiberados}" cols="75" /><br />
<h:outputText value="Dr Postagem: " styleClass="fontFields"/><br />
<h:inputText id="drPostagem" value="#{configFormatacaoControle.configFormatacao.drPostagem}" title="Dr Postagem" size="20" /><br />
<h:commandButton action="#{configFormatacaoControle.create}"
value="Salvar" styleClass="jsfButton" />
<h:commandButton type="button" value="Close" styleClass="jsfButton"
onclick="javascript:Richfaces.hideModalPanel('panelNovo')"/>
<br /><br />
</h:form>
</rich:panel>
</rich:modalPanel>
Valew!!
Olá alvimar, bom primeiro troque seu h:commandbutton por um a4j:commandButton, feito isto adicione ao seu a4j:commandButton um limitToList=“true”.
Creio q isto resolva teu problema!
[]'s
Tiago,
Eu fiz isso cara… e deu certo!
Mas tem um porém… estou tendo problemas com a4j no Internert Explorer. Já teve algum problema relacionado a isso?
Obrigado pela ajuda!
Que bom q funcionou cara, ñ tive problemas com a utilização do a4j:commandButton cara, se bem q vc falou q o problema é com o a4j, senão ia te sugerir voltar o h:commandButton e usar dentro dele o a4j:support e colocar a action/actionlistener nele e o a limitToList. Mas se teu problema for o a4j não vai funfar do mesmo jeito no ie.
A unica sugestão q possa dar é essa cara, mas quanto as dores de cabeça com navegadores o q posso te dizer é “bem vindo ao mundo web…” rsrsrss… so deus sabe o quanto sofro com navegadores, js, css…
[]'s
É verdade.
Eu ja tinha feito com a4j antes de me falar e mudei exatamente para o h:commandButton pelo problema no IE.
Sabe se tem alguma outra maneira de fazer isso? Talvez usando jquery?
Mensagem de erro no IE:
Mensagem: O objeto não dá suporte para a propriedade ou método
Linha: 166
Caractere: 390
Código: 0
URI: http://localhost:8080/EBilingOi/a4j/g/3_2_2.GAorg.ajax4jsf.javascript.AjaxScript.jsf
E é mostrado uma tela em branco ao submeter a pagina.
Qual versão do ie vc ta usando?
Ja tentou usar o modo de compatibilidade do ie?
Talves uma versão mais nova do richfaces resolva, ja pensou em testar?
Por ultimo e mais dificil seria alterar o javascript pra funcionar tb na sua versão do ie.
[]'s
Deu certo Thiago…
Peguei uma versão do richfaces mais nova e funfou…
Muito obrigado pelo ajuda cara!
[quote=alvimar henrique]Pessoal,
Estou com problema em um formulário de cadastro dentro de um rich:modalPanel pois não estou conseguindo validar os campos obrigatórios. Ou seja, quando pressiono o botão salvar é retornado para uma tela onde lista todos os registros cadastrados e não permanece no modalPanel informando que não foi feito o cadastro pois existiam campos obrigatórios que não foram preenchidos. Quando entro novamente no panel de cadastro, aparece a tela com as mensagens de campos obrigatórios não preenchidos.
O que posso fazer para permanecer no formulario do rich:modalPanel ate que se informe os dados obrigatórios sem que o mesmo feche sem essas informações?
<rich:modalPanel id="panelNovo" width="950" height="880">
<rich:panel id="panelCadastroUsuario" header="Cadastro de Config Formatação">
<h:form id="formPanel">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Cadastro de Config Formatação"></h:outputText>
</h:panelGroup>
</f:facet>
<h:inputHidden id="validateCreateField" value="#{configFormatacaoControle.configFormatacao.idConfigFormatacao}" />
<h:outputText value="Descricao: " styleClass="fontFields"/><br />
<h:inputText id="descricao" value="#{configFormatacaoControle.configFormatacao.descricao}" title="Descrição" size="100" /><br />
<h:outputText value="Nome EJB: " styleClass="fontFields"/><br />
<h:inputText id="nomeEjb" value="#{configFormatacaoControle.configFormatacao.nomeEjb}" title="Nome Ejb" size="100" required="true" requiredMessage="O Campo Nome EJB é obrigatório."/> <h:message for="nomeEjb" styleClass="camposObrigatorios"/><br />
<h:outputText value="Serviço: " styleClass="fontFields"/><br />
<h:selectOneMenu id="cbServico"
value="#{configFormatacaoControle.configFormatacao.tbServico}" rendered="true" immediate="true" converter="#{configFormatacaoControle.converter}">
<f:selectItems value="#{configFormatacaoControle.listaServicosCombo}" />
</h:selectOneMenu><br />
<h:outputText value="Path Raiz Linux: " styleClass="fontFields"/><br />
<h:inputText id="pathRaizLinux" value="#{configFormatacaoControle.configFormatacao.pathRaizLinux}" title="Path Raiz Linux" size="100" /><br />
<h:outputText value="Path Raiz Windows: " styleClass="fontFields"/><br />
<h:inputText id="pathRaizWindos" value="#{configFormatacaoControle.configFormatacao.pathRaizWindos}" title="Path Raiz Windows" size="100" /><br />
<h:outputText value="Diretorio Spool: " styleClass="fontFields"/><br />
<h:inputText id="diretorioSpool" value="#{configFormatacaoControle.configFormatacao.diretorioSpool}" title="Diretorio Spool" size="100" required="true" requiredMessage="O Campo Diretorio Spool é obrigatório."/>
<h:message for="diretorioSpool" styleClass="camposObrigatorios"/><br />
<h:outputText value="Diretorio Processamento: " styleClass="fontFields"/><br />
<h:inputText id="diretorioProcessamento" value="#{configFormatacaoControle.configFormatacao.diretorioProcessamento}" title="Diretorio Processamento" size="100" required="true" requiredMessage="O Campo Diretorio Processamento é obrigatório.">
</h:inputText> <h:message for="diretorioProcessamento" styleClass="camposObrigatorios"/><br />
<h:outputText value="Diretorio Liberados: " styleClass="fontFields"/><br />
<h:inputText id="diretorioLiberados" value="#{configFormatacaoControle.configFormatacao.diretorioLiberados}" title="Diretorio Liberados" size="100">
</h:inputText><br />
<h:outputText value="Path Armazenamento: " styleClass="fontFields"/><br />
<h:inputText id="pathArmazenamento" value="#{configFormatacaoControle.configFormatacao.pathArmazenamento}" title="Path Armazenamento" size="100" /> <br />
<h:outputText value="Gera Gravação Serviço: " styleClass="fontFields"/>
<h:selectOneRadio id="geraGravacaoServico" value="#{configFormatacaoControle.configFormatacao.geraGravacaoServico}">
<f:selectItem itemLabel="Sim" itemValue="1" />
<f:selectItem itemLabel="Não" itemValue="0" />
</h:selectOneRadio><br />
<h:outputText value="Gera SOS Laser: " styleClass="fontFields"/>
<h:selectOneRadio id="geraSosLaser" value="#{configFormatacaoControle.configFormatacao.geraSosLaser}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Grava Mídia: " styleClass="fontFields"/>
<h:selectOneRadio id="gravaMidia" value="#{configFormatacaoControle.configFormatacao.gravaMidia}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Grava Journal: " styleClass="fontFields"/>
<h:selectOneRadio id="gravaJournal" value="#{configFormatacaoControle.configFormatacao.gravaJournal}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Gera Numero Lote: " styleClass="fontFields"/>
<h:selectOneRadio id="geraNumeroLote" value="#{configFormatacaoControle.configFormatacao.geraNumeroLote}">
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Lote por Núcleo: " styleClass="fontFields"/>
<h:selectOneRadio id="lotePorNucleo" value="#{configFormatacaoControle.configFormatacao.lotePorNucleo}" >
<f:selectItem itemLabel="Sim" itemValue="1"/>
<f:selectItem itemLabel="Não" itemValue="0"/>
</h:selectOneRadio><br />
<h:outputText value="Xml Config Liberados: " styleClass="fontFields"/><br />
<h:inputTextarea id="xmlConfigLiberados" value="#{configFormatacaoControle.configFormatacao.xmlConfigLiberados}" cols="75" /><br />
<h:outputText value="Dr Postagem: " styleClass="fontFields"/><br />
<h:inputText id="drPostagem" value="#{configFormatacaoControle.configFormatacao.drPostagem}" title="Dr Postagem" size="20" /><br />
<h:commandButton action="#{configFormatacaoControle.create}"
value="Salvar" styleClass="jsfButton" />
<h:commandButton type="button" value="Close" styleClass="jsfButton"
onclick="javascript:Richfaces.hideModalPanel('panelNovo')"/>
<br /><br />
</h:form>
</rich:panel>
</rich:modalPanel>
Valew!![/quote]
Opa… que bom que deu certo cara!
Precisando, estamos ai!
[]'s
Estou com problema semelhante ao seu (página em branco ao submeter no IE, com o erro de javascript, no FF funciona sem problemas).
Vendo os posts e as sugestões, me vi em um beco sem saída, pois utilizo mais de um componente a4j (como o a4j:support e o a4j:region).
Segundo sua resposta, alvimar, você diz que passou para uma versão mais nova do Richfaces que funcionou. Que versão foi essa, pois assim como sua versão anterior, também estou usando a 3.2.2, mas ao passar para a 3.3.3 não deu certo?
Utilizo estes a4j para renderizar um componente após alterar um outro, como no caso abaixo:
(...)
<h:inputText id="textoParaBusca" value="" immediate="true" style="width: 215px;">
<a4j:support event="onchange" reRender="tabela"/>
</h:inputText>
<a4j:region id="region" immediate="true">
<rich:dataTable id="tabela" .....
</rich:dataTable>
</a4j:region>
(...)
Se tiver que eliminar os componentes a4j, o que vocês sugeririam para substituir o a4j:support e o a4j:region para renderizar o dataTable?