powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Struts и форма с n -ым кол-вом полей?
8 сообщений из 8, страница 1 из 1
Struts и форма с n -ым кол-вом полей?
    #33631144
cub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cub
Гость
Данные из БД выводятся на форму INPUT 'ы (пример: fam_1,im_1,ot_1- 1стр ... fam_n,im_n,ot_n- n-ая строка) также у каждой стоки есть признаки действия checkbox ( del_1, edit_1- 1стр … del_n, edit_n n -стр). Каким образом можно сформировать/обработать такую форму c использование Struts, ведь FormAction должен иметь set и get методы для каждого поля, а их n-ое кол-во? Если FormAction исключить вылезает ошибка, создавать пустой FormAction или чего?
...
Рейтинг: 0 / 0
Struts и форма с n -ым кол-вом полей?
    #33631160
ponomarevvb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, использоватьформу с Map в качестве хранилища свойств? (map-backed form, кажется, называыется, если соберётесь гуглить).
Типа такого:

TestForm.java:
Код: plaintext
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.
 public   class  EmployeeForm  extends 
{
	 private   static   final   long  serialVersionUID = -4870175756484249335L;

	/** Employee properties. */
	 protected  Map props =  new  HashMap();
	
	
	 public   void  setProperties(Map properties)
	{
		 this .props = properties;
	}

	 public  Map getProperties()
	{
		 return  props;
	}

	 public  Object getValue(String key)
	{
		Object p = props.get(key);
		 return  p;
	}

	 public   void  setValue(String key, Object value)
	{
		props.put(key, value);
	}
}

TestPage.jsp
Код: plaintext
1.
2.
3.
4.
5.
6.
…
<html:form action = "edit.do">
	<html:text property = "value(name1)"/>
	<html:text property = "value(name2)"/>
	…
</html:form>
nameN - ключи в карте. Я думаю, можно даже заключить <html:text> в <logic:iterate> и пробежаться по всем ключам, но не уверен, попробовать негде.
--С уважением, ponomarevvb--
...
Рейтинг: 0 / 0
Struts и форма с n -ым кол-вом полей?
    #33631161
Переопределеите для формы метод ActionForm#reset и ватыскивайте в нем нужные параметры из HttpServletRequest'а.

Если порядок следования параметров никакой роли не играет, можно назначить всем input'ам одинаковые имена (name), а в From'е определить метод setName(String[]) - получите массив введенных значений.
...
Рейтинг: 0 / 0
Struts и форма с n -ым кол-вом полей?
    #33631568
Tomaso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smotri v storonu nested tagov
...
Рейтинг: 0 / 0
Struts и форма с n -ым кол-вом полей?
    #33632747
maddcast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не надо ничего переопределять. Не надо использовать никаких Properties. И уж, тем более, nested tags не решат проблемы. Периодически сталкиваюсь с подобной задачей и терпеть её не могу. Стандартного решения нет, потому что есть несколько проблем, которые решать можно по-разному. Советую в класс формы добавить всего одно свойство: массив или список всех значений. Саму форму держать в сессии (правда может возникнуть проблема с checkbox, тогда надо немного другим путём идти), главное, чтобы в любой момент обращения к классу формы элементы не были нулевыми. Затем в jsp, в цикле <html:text property="list[${index}].text"><html:checkbox property="list[${index}].check">. ${index} можно считать как угодно, это наименее важная вещь.
...
Рейтинг: 0 / 0
Struts и форма с n -ым кол-вом полей?
    #33633937
cub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cub
Гость
maddcast, можете показать примерчик и почему метод ponomarevvbиспользование map-backed form не подходит, помойму он похож или я чего-то недогоняю?
...
Рейтинг: 0 / 0
Struts и форма с n -ым кол-вом полей?
    #33634658
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maddcastЗатем в jsp, в цикле <html:text property="list[${index}].text"><html:checkbox property="list[${index}].check">. ${index} можно считать как угодно, это наименее важная вещь.
У тега <logic:iterate> есть атрибут indexId, который инициализирует переменную - счетчик. Т.е. можно примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 public   class  TestForm   extends  ValidatorForm {

   private  List items;

   public  List getItems() {  return  items; }

   public   void  setItems(List items) {  this .items = items; }
}
Код: plaintext
1.
2.
3.
4.
<logic:iterate id="item" name="testForm" property="items" indexId="index">
  <bean:write name="item" property="caption"/>
  <html:text property='<%="items[" + index + "].value" %>'/>
</logic:iterate>
где value - атрибут класса, добавленного в список items . Инициализировать список можно в action'е перед показом jsp. Класть форму действительно приходится в сессию.

С checkbox'ами одна проблема - если на странице они скинуты, то просто не будут указаны в пришедшем request'е. Поэтому неплохо в форму дописать метод по сбрасыванию их всех, а нужные будут установлены:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 public   class  TestForm   extends  ValidatorForm {

   private  List items;

  ...
  
   public   void  reset(ActionMapping mapping, HttpServletRequest request) {
     for  (Iterator it = items.iterator(); it.hasNext();) {
      MyClass myClass = (MyClass)it.next();
      // Предположим, что есть свойство boolean myClass.myValue
      myClass.myValue = false;
    }
  }
}
...
Рейтинг: 0 / 0
Struts и форма с n -ым кол-вом полей?
    #33635293
maddcast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За совет с reset спасибо. Я не знал, как лучше решить эту проблему.

Примеры постараюсь выложить.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Struts и форма с n -ым кол-вом полей?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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