Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Заполнение формы в jsp / 9 сообщений из 9, страница 1 из 1
26.01.2007, 15:38:10
    #34285781
pa100r
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
Существует jsp, которая содержит форму, она используется как для добавления новых записей, так и для редактирования уже существующих.
После редактирования, данные проходят проверку, и если все ОК, то сохраняются в базу, если есть ошибки, то форма заполняется уже введенными данными, и пользователю предлагается исправить ошибки.
Две одинаковые формы делать не хочется, но как привязать форму одновременно к bean и к request придумать не могу.
Подскажите, пожалуйста, как это сделать максимально ловким способом.
...
Рейтинг: 0 / 0
26.01.2007, 15:49:39
    #34285829
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
Код: plaintext
1.
<input type="text" name="t1" value="<%=(request.getParameter("t1")!=null)?request.getParameter("t1"):""%>">
...
Рейтинг: 0 / 0
26.01.2007, 15:52:52
    #34285851
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
Я так понимаю, у вас три состояния формы:
1. Ввод новых данных;
2. Редактирование данных;
3. Редактирование данных с ошибками.

Пусть будут сущности
1. Создать компонент со списком ошибок errors (List<String>, самое простое).
2. Bean - как параметры запроса (сессии).
Тогда на JSP страницы делаем следующую логику:
1. Выводим все ошибки, если список есть.
2. Если bean уже есть, заполняем поля формы.

То есть получаем, что в блоке ошибок осуществляется проверка на errors != null, и если так - формируем список ошибок. С bean сложнее, придется проверять bean != null для каждого поля. Но можно создать пустой bean, и использовать его (поля у которого проинициализированны пустыми значениями).

PS wicket с этим справляется на ура. Возможно и другие фреймворки тоже.
...
Рейтинг: 0 / 0
26.01.2007, 16:00:07
    #34285885
pa100r
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
Проблема в том что если данные введены некорректно, то мы не сможем создать bean.
Например, при неправильном формате числового значения.
В данный момент я передаю HashMap<String,String> в jsp.
Но при таком способе для bean приходится писать метод преобразующий поля в HashMap.
А это не очень красиво выглядит, плюс при добавлении полей приходится менять этот метод.
Есть чувство, что существует более элегантный способ.
...
Рейтинг: 0 / 0
26.01.2007, 17:48:03
    #34286398
y3u
y3u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
посмотри какой-нибудь валидатор, если в твоем MVC фреймворке нету своего... К примеру, очень хорош http://jakarta.apache.org/commons/validator/ умеет работать с бинами с том числе, там посмотришь как можно сделать удобно. Кстати, там есть и JS-ник в комплекте, чтобы валидацию на клиенте делать, а не на сервере
...
Рейтинг: 0 / 0
26.01.2007, 18:26:25
    #34286517
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
pa100rПроблема в том что если данные введены некорректно, то мы не сможем создать bean.
На самом деле можем. При создание поля, они проинициализированны нулевыми объектами. Например, при описание человека. Пока писал, придумал - можно создать методы getValueAsString.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Person {
   int  age =  0 ; //Присваивание для ясности. Если убрать, все равно будет ноль.
  String name = ""; 
  Person(){
  }
  public  getAgeAsString(){
   if  (age ==  0 ) {
     return  "";
  };
   return  String.valueOf(age);
  // Либо, если не критично оставить только эту строку.
 }
 // Методы доступа.
}
Код на пвсевдо-jsp.
Код: plaintext
1.
2.
 <input value= person.getName>
 <input value=person.getAgeAsString>
Но проще всместо JSP использовать что-нибудь другое на уровне представления. Это, конечно, если есть возможность.
...
Рейтинг: 0 / 0
26.01.2007, 18:36:31
    #34286536
pa100r
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
Всем спасибо большое!
Пока сделал по тупому, с преобразованием bean в HashMap.
Попробую напрыгнуть на validator теперь
...
Рейтинг: 0 / 0
26.01.2007, 18:48:02
    #34286561
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
а если скоуп сессион на форму поставить?
...
Рейтинг: 0 / 0
26.01.2007, 18:48:40
    #34286563
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение формы в jsp
Опа, незаметил што не стратс.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Заполнение формы в jsp / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]