![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Fedrus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 20.9.2007 Репутация: нет Всего: нет |
Всем добрый день!
Не ругайте сильно если что - начинающий программист Напишу код потом проблемма. Страница :
B так здесь есть форма при нажатии ссылки add user открывается форма для заполнения инфо о юзере мы вводим значения в инпут поля пото нажимаем кнопку add! и не зависимо от результата добавился юзер или нет в инпут полях остаются значения это ничего но вот хотелось чтоб при нажатии на ссылка add user форма очищалась но это не так! (бин хранится в request scope) И так зделал для начало отельную ссылку очистка формы она вызывает метод clearForm тут начинается самое интересное. Сейчас findComponent("module") находит subview по id а мне нужно то чтоб он находил форму по id = addUserForm и тогда можно чистить все компоенты(вроде должно получиться) Но вот проблемма!!!: он не находит форму ни так findComponent("addUserForm") не так findComponent("module:addUserForm") ДОБАВИЛ блин пробовал и различные вариации с поиском h:panelGrid тоже не помогло. Есть у кого какие соображения по этому поводу?? (возможно есть другие способы очистки формы?? и более легкие??) Это сообщение отредактировал(а) Fedrus - 10.10.2007, 15:24 --------------------
Если вы идете через ад, идите не останавливаясь. |
|||
|
||||
| ivg |
|
||||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 32 Всего: 81 |
В коде бина user:
|
||||
|
|||||
| Fedrus |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 20.9.2007 Репутация: нет Всего: нет |
Дело в том что если заполнить не все поля, а скажем Lastname , так как у меня есть другие required поля то в addAction не заходит.
А в поле Lastname остается значение, оно пропадает если перейти на другой модуль а потом обратно но надо чтоб оставаясь на этом модуле это поле очищалось нажатеем кнопки ссылки. Вообще у меня есть задача сделать очистку формы но добавление юзеров пока не работает. вот полный код бинов: #{user} = userController:
user:
Если всетаки проблемма связанна с неработающим добавлением юзера то объясните как? Спасибо ivg за вариант но думаю ты не совсем понял в чем проблема. Жду еще советов и предложений. Заранее спасибо. Это сообщение отредактировал(а) Fedrus - 10.10.2007, 14:28 --------------------
Если вы идете через ад, идите не останавливаясь. |
||||
|
|||||
| Fedrus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 20.9.2007 Репутация: нет Всего: нет |
А (UIComponent) FacesContext.getCurrentInstance().getViewRoot().findComponent("module"); возвращает UINamingContainer
я совсем нуб подскажите плз как мне отобразить все это дерево на экране?? --------------------
Если вы идете через ад, идите не останавливаясь. |
|||
|
||||
| ivg |
|
||||||||||||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 32 Всего: 81 |
1.Не заходит, потому что в этом случае валидация не проходит, и тогда сразу идёт Рендеринг. Фаза INVOKE_APPLICATION пропускается, а именно на ней, в данном случае происходит вызов clearForm(); Если стоит задача сделать очистку формы в любом случае, то тогда у ссылки нужно поставить атрибут immediate="true":
Тогда clearForm() будет вызвана до фазы валидации. 2.По поводу самой функции clearForm(): во первых она должна быть рекурсивной:
во вторых я бы точно не стал так заморачиваться а сделал бы как я уже написал:
Это самое простое решение, правда тут есть одно но: Бин user в RequestScope, и создавать новый объект, который по окончании запроса станет мусором, только для того чтобы отобразить пустые поля, как то не кошерно Если бы он был SessionScope тогда это ИМХО было бы лучшим решением. Так вот по этому поводу ещё один вариант (только для RequestScope):
Соответственно гдето в faces-config.xml
где addUser.jsf - View указанный ранее. Вот, выбирай |
||||||||||||
|
|||||||||||||
| Fedrus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 20.9.2007 Репутация: нет Всего: нет |
ДАААА вот это да а я и не подумал
this.user = new User(); в clianForm добавить спасибо большое! (не успел обрадоваться как попробывал и опять 25) Теперь я попробовал три варианта второй и третий не работают((( Первый на выполнении UIComponent form = (UIComponent) FacesContext.getCurrentInstance() .getViewRoot().findComponent( "PG1" + NamingContainer.SEPARATOR_CHAR + "addUserForm"); выбрасывает ошибку java.lang.IllegalArgumentException: PG1
вот так вот ((( Странно но у меня findComponent находит только <f:subview id= "module"> а при поиске PG1 или других элементов null(( Должно быть по другому?? Это сообщение отредактировал(а) Fedrus - 10.10.2007, 15:57 --------------------
Если вы идете через ад, идите не останавливаясь. |
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 32 Всего: 81 |
Эт я затупил если findComponent("module") находит, то должен находить форму по findComponent("module" + NamingContainer.SEPARATOR_CHAR + "addUserForm"); Вот это странно, посмотри на клиенте (в браузере) у этой формы какой id? Это сообщение отредактировал(а) ivg - 10.10.2007, 16:19 |
|||
|
||||
| Fedrus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 20.9.2007 Репутация: нет Всего: нет |
(про регистр я тоже заметил)
УРААА! Все заработало вот так findComponent("module" + NamingContainer.SEPARATOR_CHAR + "module:addUserForm"); id на странице выглядит module:module:addUserForm(это из-за того что у нас ипрорты) вот и добавил module:))) Спасибо огромное ivg !! Надо было сразу посмотреть. --------------------
Если вы идете через ад, идите не останавливаясь. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |