| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 09:19:47
|
valdair.mts
Thread.start()
Membro desde: 06/04/2009 22:23:05
Mensagens: 46
Localização: Braço do Norte/SC
Offline
|
O usuário digita um valor inválido no campo inpFilterValue e clica no botão Salve, o que vai disparar a validação e a mensagem de validação será exibida.
Então o usuário clica no botão Cancelar para descartar as alterações, o comportamento desejado é que os valores voltem ao estado original (ou em branco no caso de inclusão).
Porém devido a validação previamente executada, o valor incorreto é mantido no campo que estava inválido.
Vejam que o botão Cancelar foi configurado para não processar outros componentes. Isto funciona, desde que o usuário não tenha clicado no botão salvar previamente.
This message was edited 1 time. Last update was at 08/02/2012 07:04:57
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 11:37:57
|
Diego Adriano
JavaEvangelist
![[Avatar]](/images/avatar/848115676618836e7959dd6909273d4d.jpg)
Membro desde: 27/01/2010 11:48:28
Mensagens: 371
Localização: Extrema - MG
Offline
|
Coloca o ajax
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 11:41:04
|
mrbbm
JavaChild
Membro desde: 16/12/2009 14:49:58
Mensagens: 125
Offline
|
Já passei por situação similar.
No meu caso eu validava na própria página com campos requeridos (required="true").
Então ao editar o formulário, clicar em Salvar e reprovar na validação, mesmo que eu quisesse cancelar a operação posteriormente o objeto parecia não sair daquele estado de validação. A página ficava trancada, o load e nem o new no objeto não funcionavam.
"Resolvi" dando refresh na página (submit) para forçar a saída daquele estado.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 11:56:55
|
DarthCego
Debugger
![[Avatar]](/images/avatar/2870c1f28c3304d9d2f00802fb2e7a1f.jpg)
Membro desde: 05/01/2012 19:11:17
Mensagens: 64
Localização: Presidente Prudente - SP
Offline
|
Ola amigo
Tente por o immediate="true" no seu botao cancelar
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 12:04:21
|
valdair.mts
Thread.start()
Membro desde: 06/04/2009 22:23:05
Mensagens: 46
Localização: Braço do Norte/SC
Offline
|
Olá Diego,
Vlw, mas o problema persiste com a alteração abaixo. Desta forma, mesmo com o estado válido ao cancelar os dados são mantidos no componente.
e nem assim:
também não assim:
Ainda, eu prefiria fazer isso usando ajax para não precisar renderizar toda a view.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 12:07:57
|
valdair.mts
Thread.start()
Membro desde: 06/04/2009 22:23:05
Mensagens: 46
Localização: Braço do Norte/SC
Offline
|
DarthCego wrote:Ola amigo
Tente por o immediate="true" no seu botao cancelar
Vlw colega, mas já está desta forma.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 12:16:17
|
valdair.mts
Thread.start()
Membro desde: 06/04/2009 22:23:05
Mensagens: 46
Localização: Braço do Norte/SC
Offline
|
mrbbm wrote:Já passei por situação similar.
No meu caso eu validava na própria página com campos requeridos (required="true").
Então ao editar o formulário, clicar em Salvar e reprovar na validação, mesmo que eu quisesse cancelar a operação posteriormente o objeto parecia não sair daquele estado de validação. A página ficava trancada, o load e nem o new no objeto não funcionavam.
"Resolvi" dando refresh na página (submit) para forçar a saída daquele estado.
Pode ser uma solução, mas aí também encontrei uma solução alternativa, que vou adotar caso não solucione de outra forma: retornar uma mensagem FacesMessage.SEVERITY_WARN ao invés FacesMessage.SEVERITY_ERROR e controlar a validação do campo no bean, inclusive o required. Desta forma não deixou a view em estado inválido.
Mesmo assim aceito sugestões para corrigir de uma menos "alternativa".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/02/2012 14:51:36
|
lordaj
HelloWorld
![[Avatar]](/images/avatar/bf232372187476bd5b8146e467fa85dc.jpg)
Membro desde: 07/05/2007 12:08:13
Mensagens: 10
Offline
|
só o process="@this" update="@form" já é suficiente pra fazer funcionar.. eu uso e funciona perfeito, use actionListener em vez de action, tira esse disabled por enquanto e testa..
<p:commandButton id="btnCancel" value="Cancel"
process="@this" update="@form"
icon="ui-icon ui-icon-circle-check" title="Cancelar"
actionListener="#{targetBean.filterEditor.cancel}" />
tente assim..
mas verifica tb se as tags tão certas..
<h:body>
<f:view>
<h:form prependId="false" >
</h:form>
</f:view>
</h:body>
This message was edited 1 time. Last update was at 07/02/2012 14:53:35
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 07:03:06
|
valdair.mts
Thread.start()
Membro desde: 06/04/2009 22:23:05
Mensagens: 46
Localização: Braço do Norte/SC
Offline
|
lordaj wrote:só o process="@this" update="@form" já é suficiente pra fazer funcionar.. eu uso e funciona perfeito, use actionListener em vez de action, tira esse disabled por enquanto e testa..
<p:commandButton id="btnCancel" value="Cancel"
process="@this" update="@form"
icon="ui-icon ui-icon-circle-check" title="Cancelar"
actionListener="#{targetBean.filterEditor.cancel}" />
tente assim..
mas verifica tb se as tags tão certas..
<h:body>
<f:view>
<h:form prependId="false" >
</h:form>
</f:view>
</h:body>
Acredito que tem razão sobre os atributos process e update, BalusC explica aqui:
http://stackoverflow.com/questions/7708041/jsf-immediate-true-for-cancel-button-doesnt-work
Com relação ao disabled, não é o problema. E as tags estão corretas. Vlw lordaj.
Bem, acho que vou "resolver" com a solução "alternativa", que comentei antes, que está com gerando o comportamento que desejo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 10:23:02
|
mrbbm
JavaChild
Membro desde: 16/12/2009 14:49:58
Mensagens: 125
Offline
|
valdair.mts wrote:
mrbbm wrote:Já passei por situação similar.
No meu caso eu validava na própria página com campos requeridos (required="true").
Então ao editar o formulário, clicar em Salvar e reprovar na validação, mesmo que eu quisesse cancelar a operação posteriormente o objeto parecia não sair daquele estado de validação. A página ficava trancada, o load e nem o new no objeto não funcionavam.
"Resolvi" dando refresh na página (submit) para forçar a saída daquele estado.
Pode ser uma solução, mas aí também encontrei uma solução alternativa, que vou adotar caso não solucione de outra forma: retornar uma mensagem FacesMessage.SEVERITY_WARN ao invés FacesMessage.SEVERITY_ERROR e controlar a validação do campo no bean, inclusive o required. Desta forma não deixou a view em estado inválido.
Mesmo assim aceito sugestões para corrigir de uma menos "alternativa".
Eu resolvi assim, tratando no Bean, inclusive os required. E em conjunto com Ajax nem é preciso dar refresh na página.
Funciona perfeitamente.
|
|
|
 |
|
|