Jsf - required="true" x immediate="true"

Tenho um formulario q contem alguns campos a serem preenchidos e o botao salvar. Alguns campos tem o atributo required=“true” … a validação e a inserção funciona perfeitamente.

No msm formulario tenho um table que lista todos os registros conforme são inseridos, nessa mesma table tenho 2 links para excluir e editar … o link editar deve popular os text com os dados do registro selecionado.

Porém quando clico no link editar em vez de popular os campos, aparece a mensangem de campo obrigatorio e os campos nao são populados.

Se eu colocar o atributo immediate=“true” , não faz a validação , mais tb não popula.

Como resolver esse problemas (validar somente qdo a ação NÃO for pelo clik no link da table), pois o atributo immediate=“true” resolver o problema de não validar, mais tb não popula, preciso que popule sem validar.

Se eu tirar do campo o atributo requeride=“true”, aí sim , popula qdo clico no link da tabela. Porém não posso deixar assim, tem q ter a validação, para no caso de ser uma inserção direta no botao salvar.

Estou trabalhando com JSF e RichFAces (outputText e dataTable)

Alguem ajuda??

Grata,

Izaura

Ja tentou colocar somente immediate=true no link de editar?

Sim … se coloco, não passa pela validação, mais também não popula os campos.

Inclua sua dataTable dentro de uma ajaxRegion (a4j:region), essa tag delimita a parte da view JSF será processada no lado servidor quando a requisição ajax for enviada, logo, a parte da página que contém os campos required não será processada.

Transforme seu link “Editar” em a4j:commandLink (remova o immediate=true) e faça com que ele de reRender nos campos que devem ter seus valores atualizados.

Amigo, lhe sugiro colocar essa tabela que “Lista” os dados conforme são inseridos para forma do form principal, juntamente com os botões de editar e excluir.

Ou seja, crie outro form forma do form que faz o insert.

Seria o correto na minha opinião, pois pelo visto tu queres fazer um form que “faz tudo” e isso pode dar problemas. A não ser que tu trabalhe com ajax-single, o ideal é fazer um form fora somente para listar os dados e efetuar as operações de edit e delete.

[quote=lfpolli]Inclua sua dataTable dentro de uma ajaxRegion (a4j:region), essa tag delimita a parte da view JSF será processada no lado servidor quando a requisição ajax for enviada, logo, a parte da página que contém os campos required não será processada.

Transforme seu link “Editar” em a4j:commandLink (remova o immediate=true) e faça com que ele de reRender nos campos que devem ter seus valores atualizados.[/quote]

pode explicar o reRender??

Grata

http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxAttributes.jsf?c=ajaxattributes&tab=usage

vou dá uma lida … obrigada!

[quote=lfpolli]Inclua sua dataTable dentro de uma ajaxRegion (a4j:region), essa tag delimita a parte da view JSF será processada no lado servidor quando a requisição ajax for enviada, logo, a parte da página que contém os campos required não será processada.

Transforme seu link “Editar” em a4j:commandLink (remova o immediate=true) e faça com que ele de reRender nos campos que devem ter seus valores atualizados.[/quote]

Segui suas orientações e problemas resolvidos.

Tem coisa q não aprendemos em curso, só qdo passamos pela situação . Obrigada!

:wink:

Show de bola o POST, me embananei pq tava colocando o ajaxRegion apenas na tabela, mas ela tem que incluir o commandLink :slight_smile: