Pessoal… Tenho duas datas, a dataInicial e dataFinal, sendo que no evento onblur da dataFinal eu preciso fazer uma validação para que a dataFinal não seja menor do que a dataInicial,
retornando em seguida uma mensagem através da do FacesMessage.
No momento não estou conseguindo fazer essa validação.
Esse é o meu código XHTML.
Ao ir para o metodo do validator… os meus atributos dtFinal e dtInicial estão indo null… Porém eu to colocando-os no process.
Você precisa criar um metodo que faça a validação para ti, implicando que o restante do seu codigo seja executado a partir do return ( true || false ) deste metodo …
R
Rodrigo_Sasaki
Poste o seu método de validação
B
buiutb
digaoneves:
Poste o seu método de validação
publicvoidvalidarDataDeVigencia(){if(this.getDtInicial()!=null){if(this.getDtInicial().equals("")||this.getDtInicial()==null){FacesMessages.instance().addToControl("dataInicioVigencia",newServiceException("Preencha o campo Inicio da vigência").getMessage());return;}elseif(this.getDtInicial().after(this.getDtFinal())){FacesMessages.instance().addToControl("dataFimVigencia",newServiceException("Data final não pode ser maior que a data inicial").getMessage());return;}}}
Valeu pela colaboração pessoal.
D
Dantch
Mas e aí o problema ainda perciste ?
R
Rodrigo_Sasaki
O problema é que as datas estão nulas quando esse método é invocado, certo?
você pode tentar adicionar uma tag de ajax, para garantir que o valor da data seja enviado para o seu model, dessa forma: <rich:calendar id="dataInicial"
enableManualInput="true" value="#{meuBean.dataInicial}"
datePattern="dd/MM/yyyy">
<f:ajax event="inputblur" execute="@this" render="@this"/>
</rich:calendar>
D
Dantch
digaoneves:
O problema é que as datas estão nulas quando esse método é invocado, certo?
você pode tentar adicionar uma tag de ajax, para garantir que o valor da data seja enviado para o seu model, dessa forma: <rich:calendar id="dataInicial"
enableManualInput="true" value="#{meuBean.dataInicial}"
datePattern="dd/MM/yyyy">
<f:ajax event="inputblur" execute="@this" render="@this"/>
</rich:calendar>
Acredito que isso resolva, mas se não der certo vai no seu Bean e printa no console o que está chegando da sua data inicial …
B
buiutb
digaoneves:
O problema é que as datas estão nulas quando esse método é invocado, certo?
você pode tentar adicionar uma tag de ajax, para garantir que o valor da data seja enviado para o seu model, dessa forma: <rich:calendar id="dataInicial"
enableManualInput="true" value="#{meuBean.dataInicial}"
datePattern="dd/MM/yyyy">
<f:ajax event="inputblur" execute="@this" render="@this"/>
</rich:calendar>
Digao… Acrescentei essa linha de código, porém, ocasionou essa exception:
Ou seja, a minh aJSF não suporta essa TAG, pois ao qual estou usando, é o JSF 1.2 e essa tag é do JSF 2.0.
Sabes outro método, sendo feito com o JSF 1.2? Frisando-lhe, que utilizo richfaces 3.0 e jboss Seam 4
Valeu cara…
B
buiutb
Dantch:
digaoneves:
O problema é que as datas estão nulas quando esse método é invocado, certo?
você pode tentar adicionar uma tag de ajax, para garantir que o valor da data seja enviado para o seu model, dessa forma: <rich:calendar id="dataInicial"
enableManualInput="true" value="#{meuBean.dataInicial}"
datePattern="dd/MM/yyyy">
<f:ajax event="inputblur" execute="@this" render="@this"/>
</rich:calendar>
Acredito que isso resolva, mas se não der certo vai no seu Bean e printa no console o que está chegando da sua data inicial …
Dantch, acredito que isso funcionaria também, porém minha aplicação, utiliza JSF 1.2 por padrão da empresa ao qual trabalho.
Sabes outra forma de fazer o mesmo, porém com o JSF 1.2?
Valeu cara…
D
Dantch
buiutb, o que quis dizer é que pode usar um: System.out.print("Ideia: "+getInicio());
apenas para saber se está chegando “null”, se isso estiver acontecendo, tu tomas outras medidas para resolver o caso …
R
Rodrigo_Sasaki
existe a tag a4j:ajax também, só que não sei se ela ja existe no richfaces 3, dê uma pesquisada aí.
B
buiutb
Dantch:
buiutb, o que quis dizer é que pode usar um: System.out.print("Ideia: "+getInicio());
apenas para saber se está chegando “null”, se isso estiver acontecendo, tu tomas outras medidas para resolver o caso …
Ah sim Dantch… Fiz isso já quando me deparei com esse problema… Ele realmente vem null da tela…
Outras medidas… Já passasse por isso?
B
buiutb
existe a tag a4j:ajax também, só que não sei se ela ja existe no richfaces 3, dê uma pesquisada aí.
Digao… infelizmente, ele so tem suporte no richfaces 4.0 e o richfaces que uso no sistema é 3.3.3…
Acho que a solução no momento, é resolver através de JavaScript… Ou, conheces outro modo de contornarmos esse caso?
Do mesmo modo… Muito obrigado ai pela contribuição no tópico.
Abraço.
D
Dantch
sim, já tive o mesmo problema, mas não fiquei no projeto até o final, então não peguei toda resolução …
Já tentou utilizar a API Calendar e Date do Java pra isso, pode funcionar, aí tu só vai precisar chamar os valores já validados. Então apresentá-os usando um <h:outputText value="#{seuBean.hrIni}" />
<h:outputText value="#{seuBean.hrFim}" />
B
buiutb
Dantch:
sim, já tive o mesmo problema, mas não fiquei no projeto até o final, então não peguei toda resolução …
Já tentou utilizar a API Calendar e Date do Java pra isso, pode funcionar, aí tu só vai precisar chamar os valores já validados. Então apresentá-os usando um <h:outputText value="#{seuBean.hrIni}" />
<h:outputText value="#{seuBean.hrFim}" />
Mas fazendo desse modo… perderia então a função do rich:calendar e seus aspectos visuais…
Mas vou testar isso amanhã e ver no que vai dar… Valeu.