Сценарий множественной частичной проверки JSF - PullRequest
1 голос
/ 12 января 2009

В JSF возможно ли решить следующий сценарий проверки / обновления с использованием инфраструктуры проверки JSF (так называемые средства проверки, немедленные, требуемые и т. Д.)?

+-- 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]                                      |
+------------------------------------------------------------+

Если все поля являются раскрывающимися и когда нажатие кнопки [Обновить C] приведет к проверке только A, B и C, но не к остальным, нажатие кнопки [Обновить D] приведет к тому, что поля B, C и D вызовут только проверка и нажатие кнопки [Отправить все] приведет к проверке всех полей.

Ответы [ 2 ]

1 голос
/ 13 января 2009

Технически, да, это можно сделать с помощью валидаторов / немедленных. Однако это не было бы особенно просто.

Если вы добавите валидаторы, логика в [Обновить C с использованием A и B] будет работать только в том случае, если все валидаторы пройдут или если для его непосредственного атрибута установлено значение true. Если для его непосредственного атрибута задано значение true, логика кнопки не может прочитать отправленные значения компонента, используя getValue или любой объект, с которым связан компонент; он должен использовать getSubmittedValue (плохая идея).

Лучшим подходом было бы сделать логику проверки в управляемом компоненте, к которому привязаны все элементы управления. Вы можете поместить логику проверки в любые методы, к которым привязаны ваши кнопки. Используйте кнопку [Отправить все] , чтобы сохранить проверенные данные в своей базе данных / хранилище данных / в любом другом месте.

0 голосов
/ 13 января 2009

Я обычно делал подобные вещи с Ajax, где я отправлял на сервер части, которые меня интересовали, проверял / обрабатывал там и возвращал результаты на страницу. С другой стороны, это полный обход JSF и его механизмов валидации, поэтому я думаю, что это не самое умное / оптимальное решение ...

...