Pergunta

Em JSF, é possível resolver o seguinte validação / cenário de atualização usando o quadro de validação do JSF (aka validadores, imediato, exigido, etc.)?

+-- Form ----------------------------------------------------+
|                                                            |
| Field A: |____________|v|                                  |
| Field B: |____________|v|                                  |
| Field C: |____________|v| Button: [Update C using A and B] |
| Field D: |____________|v| Button: [Update D using B and C] |
|                                                            |
| More Fields: ...                                           |
|                                                            |
| Button : [Submit All]                                      |
+------------------------------------------------------------+

Onde todos os campos são queda baixos e onde pressionando o botão [Update C] seria única causa A, B e C para validar mas não o resto, pressionando o botão [Update D] seria única causa campos B, C e D para Validar e pressionando [Submit All] botão faria com que todos os campos para validar.

Foi útil?

Solução

Tecnicamente, sim, é possível fazer isso com validadores / imediatos. No entanto, não seria particularmente simples.

Se você adicionar validadores, a lógica em [Update C usando A e B] só vai funcionar se todos os validadores passar ou se seu atributo de imediato foi definido como verdadeiro. Se seu atributo imediato foi definido como verdadeiro, a lógica botão não pode ler os valores dos componentes apresentadas utilizando getValue ou qualquer objecto que o componente está ligada a; ele deve usar getSubmittedValue (uma má idéia).

Uma abordagem melhor seria fazer a sua lógica de validação em um bean conseguiu que todos os controles estão vinculados. Você pode colocar a lógica de validação em qualquer métodos seus botões são obrigados a. Use o [Apresentar Todos] botão para salvar seus dados validados em seu banco de dados / armazenamento de persistência / whatever.

Outras dicas

Eu estava normalmente fazendo coisas semelhantes com o Ajax, onde eu iria apresentar peças que me interessam ao servidor, valide / processo lá e retornar resultados a página. Por outro lado, é um desvio completo do JSF e é mecanismos de validação, então eu acho que não é realmente a solução mais inteligente / ótimo ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top