Bom Dia, tenho que terminar isso aqui onde trabalho e não sei mais o que fazer, se alguém tiver uma solução será de grande ajuda.
No meu JSF tenho um botão de cadastro, ele é um modalpane do richfaces. Esse botão possui uma chamada para outro modalpanel que verifica se os campos obrigatórios estão preenchidos. Se tiver ele não mostra nada, se faltar algum campo ele da uma mensagem dizendo que tal campo é obrigatório. Mas no meu botão eu também mando ele deixar o modalpanel de cadsatro visível. Dentro dele tem um commandcontrol mandando esconder ele. Só que depois que você da um OK no modalpanel de verificação, preenche os campos obrigatórios e da um CADASTRAR o modal panel não some, sendo que este tem um HIDE.
Pelo que eu entendi vc pede pra fechar no component control com o hide, mas pede pra abrir quando complete o action com o oncomplete… acho que por isso que esta ficando aberto…
mas ele não devia ser executado de modo hierarquico? Tipo deixa o panel mostrado na tela, se algum campo obrigatorio não for preenchido, senao esconde o panel
Note que você tem faz 3 coisas no seu Botão, dentre elas a primeira a ser disparada será o onClick(), em seguida vai ser disparado o seu Action e finalizando pelo seu onComplete().
Não se esqueça da ordem dos eventos.
Seguindo a lógica, ele vai primeiro fechar o MP, executar sua Action e Abrir o MP.
Eu num sei como esta o design do seu sistema ai… mas cara num seria melhor vc dar essas mensagem acima do campo sem precisar abrir um modal para dizer que tal campo precisa ser preenchido?.. tipo assim
Philipe, note que você ainda continua tentando fechar no ONCLICK, ou seja, no primeiro evento que está sendo disparado.
O seu rendered está pegando o valor ANTES do seu Action. Ele está pegando o valor que a variavel enderecoOK tem na hora que você instanciou e não na hora que ela sofreu a atribuição no Action.
Note que ela não faz diferença. Pois o seu MP vai estar fechado já. Ele apenas está tentando fechar um MP que JÁ está fechado no primeiro evento, o certo seria no Ultimo.
Tente utilizar a forma de chamar o erro como o amigo rock te mostrou, com certeza vai funcionar se chamado corretamente.
14:02:01,512 SEVERE [component] /pages/indexFiscalizacao.jsp(124,5) ‘#{DenunciaView.denuncia.denunEndereco.endCep} -
#{DenunciaView.denuncia.denunEndereco.endLogradouro} -
#{DenunciaView.denuncia.denunEndereco.endNumero}’ Illegal Syntax for Set Operation
14:02:01,528 INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=formPrincipal:inEndereco[severity=(ERROR 2), summary=(/pages/indexFiscalizacao.jsp(124,5) ‘#{DenunciaView.denuncia.denunEndereco.endCep} -
#{DenunciaView.denuncia.denunEndereco.endLogradouro} -
#{DenunciaView.denuncia.denunEndereco.endNumero}’ Illegal Syntax for Set Operation), detail=(/pages/indexFiscalizacao.jsp(124,5) ‘#{DenunciaView.denuncia.denunEndereco.endCep} -
#{DenunciaView.denuncia.denunEndereco.endLogradouro} -
#{DenunciaView.denuncia.denunEndereco.endNumero}’ Illegal Syntax for Set Operation)]
javax.servlet.ServletException: For input string: “TRINTA E UM DE MARCO”
javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
brd.sinfam.filters.HibernateFilter.doFilter(HibernateFilter.java:35)
brd.sinfam.util.UserLogado.doFilter(UserLogado.java:53)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
root cause
java.lang.NumberFormatException: For input string: “TRINTA E UM DE MARCO”
tentei fazer como você falou e da erro de NumberFormat, vi que o - (hifen) na EL ele vai usar como subtraçao :S
Pelo visto nao vai dar de fazer, então criei uma String no meu ManagedBean e concatenei esses valores no value e funcionou.
Philipe, posso estar falando alguma coisa errado, mas pelo que me lembro (Faz um tempo que não trabalho com JSF e trabalhei com o 1.2) você NÃO pode utilizar no value de um inputtext varios atributos diferentes ao mesmo tempo, por que ele não saberia aonde realizar o SET do valor. Tente colocar só: