|
|
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Hi All, Скорее всего, это ламерский вопрос, но я уже отчаялся с ним бороться, так что прошу не бить ногами. Есть страница, на которой 2 панели в одной форме; в одной панели (objectsPanel) - таблица объектов, во второй (objectPanel) - поля для редактирования. По линку из таблицы объектов загружается объект и рендрится вторая панель. Проблема в том, что после ошибке валидации во второй панели, при нажатии на линк не перерисовываюся заполненные поля второй панели. Если после ошибки валидации нажать кнопку "Reset" - все перерисовывается нормально. Что я делаю не так? Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 12:14:29 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
авторПроблема в том, что после ошибке валидации во второй панели, при нажатии на линк не перерисовываюся заполненные поля второй панели. Если после ошибки валидации нажать кнопку "Reset" - все перерисовывается нормально. Вот тут поподробнее пожалуйста, если можно по шагам - ввел то-то, нажал то-то получил то-то, я не понимаю о каком линке вы говорите, а искать связь как-то лень если честно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 12:32:23 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Ну вроде понял я что вы хотите Код: html 1. 2. Зачем вы используете аттрибут immediate="true"? Вы знаете как он работает? Я думаю если убрать то все заработает, другое дело что может быть он у вас какие-то функции выполняет - тогда будем думать еще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 12:37:52 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
забыл ник, Линк вот этот, который подгружает объект и рендрит форму: Код: html 1. 2. 3. 4. Последовательность шагов такова: 1. Заполняю форму не до конца, вызывая ошибку валидации при создании нового объекта; 2. Кликаю на линк в таблице существующих объектов в надежде получить для редактирования существующий объект; 3. Обнаруживаю, что при рендеринге формы не обновилось содержимое полей, которые я заполнил на шаге 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 12:41:31 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
забыл ник, не работает и без immediate="true". Если его нет - еще и messages от валидации показывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 12:42:46 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Ну мне две вещи бросились в глаза. 1) Попробуйте execute="@form" или execute="form" - не помню точный синтаксис, суть в том чтобы вся форма перерендерилась. 2) Код: html 1. а потом Код: html 1. Может где-то опечатка закралась Кстати было бы полезно увидеть ваш java код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:00:03 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
забыл ник, 1. С execute="@form" не срабатывает action у линка; если убрать immediate="true", то пытается валидировать пустую форму 2. Это не опечатка, есть отдельная переменная objectId, куда кладется значение id из таблицы при нажатии на линк. Потом в форме редактируются поля объекта Насколько я понимаю, форма каким-то образом "помнит", что она не прошла валидацию, и это отражается на ее отрисовке. Есть какая-нибудь возможность "стереть" эту память? Я пробовал чистить коллекцию messages и ресетить объект - ноль эмоций. Кнопка reset замечательно с этим справляется, но как вызвать ее программно - непонятно. Вот java-код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:17:48 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Еще пару вопросов - пока я разбираюсь - панель вообще отрисовывается по второму нажатию на линк? Чтобы проверить можно запихнуть в панель скрипт с alert('rendered') и 2 - вы дебаггером смотрели - все методы вызываются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:28:16 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
забыл ник, Отрисовывается. В форме все поля required. Если часть из них не заполнена до валидации - именно они перерисовываются с новыми данными, заполненные остаются такими, какими были до валидации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:34:10 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Я думаю что кнопка ресет работает потому что это дефолтное поведение для кнопки ресет у формы - очистить все поля, то есть теоретически вы можете повесить на свой линк javascript, который пробегается по всем поям, и обнуляет текст - это как временный воркэраунд, но конечно хотелось бы разобраться почему такое происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:38:03 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
забыл никЯ думаю что кнопка ресет работает потому что это дефолтное поведение для кнопки ресет у формы - очистить все поля, то есть теоретически вы можете повесить на свой линк javascript, который пробегается по всем поям, и обнуляет текст - это как временный воркэраунд, но конечно хотелось бы разобраться почему такое происходит. Опппа.. получается что часть данных с одного объекта - часть из другого? Ну ок, сейчас подумаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:39:18 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Ой не то процитировал.. ну вы поняли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:39:48 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
забыл ник, На форме все поля с одного объекта - documentTypeConfigBean.object ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:47:51 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
таки да - вы были правы - инпуты хранят submittedValue, но это можно победить, вот список ресурсов которые вам должны помочь. http://stackoverflow.com/questions/619050/jsf-commandbutton-with-immediate-true https://cwiki.apache.org/confluence/display/MYFACES/Clear+Input+Components https://community.jboss.org/thread/4367 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:52:49 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Африканецзабыл ник, Отрисовывается. В форме все поля required. Если часть из них не заполнена до валидации - именно они перерисовываются с новыми данными, заполненные остаются такими, какими были до валидации Концептуально - они из разных объектов, я это имел ввиду - Один объект - ваш новый объект, а второй - тот что был. Ну да не суть важно, я думаю решение выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 13:54:34 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 14:36:16 |
|
||
|
JSF+RichFaces: Как перерендрить форму после ошибки валидации?
|
|||
|---|---|---|---|
|
#18+
авторСпасибо, попробую разобраться Вроде бы нашел решение: http://balusc.blogspot.com/2012/03/reset-non-processed-input-components-on.html Предложенные в линках, к сожалению, не сработали (кроме тупого перехода по navigation rule, конечно). Или я их реализовал криво. Огромное Вам спасибо за идеи и дай Вам Бог здоровья. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 18:15:48 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37762948&tid=2131971]: |
0ms |
get settings: |
17ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
63ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 367ms |
| total: | 582ms |

| 0 / 0 |
