Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSF, очистка формы после submit 
:(
    Опции темы
polosatij
  Дата 13.9.2008, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8





после submit-a должна проис\ходить очистка формы автоматически.. можно ли сделать это как-то выставлением атритуба (автоматом) без итерации всех полей самому?  smile 


--------------------
PM   Вверх
ivg
Дата 13.9.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(polosatij @  13.9.2008,  05:40 Найти цитируемый пост)
после submit-a должна проис\ходить очистка формы автоматически..

А если по какому нибудь полю валидация не прошла, заставлять пользователя заново вводить все поля? Это нехорошо.
Обычно форма (или часть её) предназначена для ввода или редактирования данных по какой то конкретной сущности модели предметной области. Объект соответствующего класса является полем бина, например есть некий бин, предназначенный для заведения юзера, сам объект класса User является полем этого бина, тогда на форме будет что то типа
Код

<h:form>
    ...
    <h:inputText required="true" value="#{userbean.user.firstName}" />
    ...
    <h:inputText required="true" value="#{userbean.user.lastName}" />
    ...
    <h:commandButton value="Add User" action="#{userbean.addUser}" />
</h:form>
 ну так и вот, для очистки полей формы, достаточно в коде соответствующего action добавить всего одну строку:
Код

public String addUser() {
    // this.user сохраняем в БД
    ....
    // ну а затем выставляем нового
    this.user = new User();
    return null;
}

PM MAIL   Вверх
polosatij
Дата 13.9.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Цитата(ivg @  13.9.2008,  12:38 Найти цитируемый пост)
А если по какому нибудь полю валидация не прошла, заставлять пользователя заново вводить все поля? Это нехорошо.


у меня нет этого случая..  smile 


Цитата(ivg @  13.9.2008,  12:38 Найти цитируемый пост)
this.user = new User();


так не пойдёт.. я не работаю с объектом, я работаю с атрибутами объекта полученного через EJB.. итого, у меня в форме куча полей (а не один Object) которых нужно заNULLить.. нет ли какого атрибута для формы => если заного загружаем форму -> форма чиста как лист  smile 


--------------------
PM   Вверх
Zamuta
Дата 13.9.2008, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



polosatij, попробуйте бин страницы или бин отвечающий за данные на странице хранить в request scope. 


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
polosatij
Дата 15.9.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8





данные на странице обязаны находится в 

<managed-bean-scope>session</managed-bean-scope>

сессии.. или я чего-то неправильно понял?  smile 


--------------------
PM   Вверх
polosatij
Дата 15.9.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8






Цитата(Zamuta @  13.9.2008,  23:37 Найти цитируемый пост)
polosatij, попробуйте бин страницы или бин отвечающий за данные на странице хранить в request scope.  


к сожалению, такой фокус не пройдёт.. я работаю с AJAX, а это значит, у меня много requests для валидации, etc. -> постоянно форма будет очищатся, что мне не надо..

млин, как же сделать..  smile 


--------------------
PM   Вверх
ivg
Дата 15.9.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(polosatij @  13.9.2008,  19:09 Найти цитируемый пост)
так не пойдёт.. я не работаю с объектом, я работаю с атрибутами объекта полученного через EJB.. итого, у меня в форме куча полей (а не один Object) которых нужно заNULLить.. нет ли какого атрибута для формы => если заного загружаем форму -> форма чиста как лист

Чем не нравится способ очищения всех полей в бине, к которому привязана форма?
PM MAIL   Вверх
polosatij
Дата 15.9.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Цитата(ivg @  15.9.2008,  20:05 Найти цитируемый пост)
Чем не нравится способ очищения всех полей в бине, к которому привязана форма? 


слишком много работы.. всего будет около 100-200 форм, в каждой по 10 полей.. постоянно set-теры не хочется писать, нужно тесторовать и легко что-то пропустить..

я пошёл пока путём reflection и написал пару анотаций для исключений.. вроде работает пока без трабл, но я не очень доволен этим решением.. smile


--------------------
PM   Вверх
ivg
Дата 15.9.2008, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(polosatij @  16.9.2008,  00:57 Найти цитируемый пост)
слишком много работы.. всего будет около 100-200 форм, в каждой по 10 полей.. постоянно set-теры не хочется писать, нужно тесторовать и легко что-то пропустить..

В JSF вместо объекта с геттерами/сеттерами можно использовать Map, ну то есть при обращении к полю
Код

<h:inputText required="true" value="#{userbean.form.somefield}" />
 если (form instanceof Map) == true,то JSF будет делать form.get("somefield") и form.put("somefield", value). Может эту особенность можно как то использовать?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1191 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.