Struts
От: _Patriot_  
Дата: 05.02.06 11:02
Оценка:
Есть проблема: необходимо вывести таблицу, поля которой были бы следующими — имя пользователя(checkbox), фамилия, возраст(edit), т.е. можно выбирать пользователя и редактировать его возраст, каким образом можно это осуществить.
Re: Struts
От: C0s Россия  
Дата: 06.02.06 21:21
Оценка:
Здравствуйте, _Patriot_, Вы писали:

_P_>Есть проблема: необходимо вывести таблицу, поля которой были бы следующими — имя пользователя(checkbox), фамилия, возраст(edit), т.е. можно выбирать пользователя и редактировать его возраст, каким образом можно это осуществить.


так а что именно не получается?
по идее нужны (минималистский вариант без учета возможных сбоев и ошибок ввода):
— action A получения списка пользователей из БД + страница (jsp/velocity...) отображения этого списка (каждый элемент имеет href на action B c подставленным user id)
— action B получения из БД подробной информации по пользователю (по его user id) + страница (jsp/velocity) отображения этих деталей (form с submit на action C)
— action C обработки переданных в post отредактированных данных пользователя (включая его id) с выполнением update в БД + страница с выдачей сообщения, что "все обновлено успешно"
Re[2]: Struts
От: _Patriot_  
Дата: 07.02.06 17:29
Оценка:
Как получать данные из БД я знаю, не получается их корректно выводить, точнее вывожу через <logic:iterate>, но хочу сделать так чтобы при редактировании определенных полей, данные занасились в те же переменные (объекты класса в коллекции (например ArrayList)), а то только выводиться, можно редактировать, но отредактированные данные почему-то не заносятся в Form
Re[3]: Struts
От: C0s Россия  
Дата: 07.02.06 21:08
Оценка:
Здравствуйте, _Patriot_, Вы писали:

_P_>Как получать данные из БД я знаю, не получается их корректно выводить, точнее вывожу через <logic:iterate>, но хочу сделать так чтобы при редактировании определенных полей, данные занасились в те же переменные (объекты класса в коллекции (например ArrayList)), а то только выводиться, можно редактировать, но отредактированные данные почему-то не заносятся в Form


возможно, стратс как-то может тут помочь

но мне проще сказать о своем опыте:
1) намучившись, мы довольно быстро ушли от стратсовых форм-бинов и прочей лабуды с валидацией etc...
2) модель данных для вывода не смешивали с моделью данных для ввода (в смысле, прием данных производили в некую промежуточную структуру)
3) по сути html напрямую не сильно помогает в редактировании таблиц, однако вполне реально написать нечто свое, что будет добавлять к именам полей суффиксы, идентифицирующие строки таблицы, а потом при приеме ввода учитывать эти суффиксы
Re[3]: Struts
От: JITM  
Дата: 08.02.06 11:30
Оценка:
Здравствуйте, _Patriot_, Вы писали:

_P_>Как получать данные из БД я знаю, не получается их корректно выводить, точнее вывожу через <logic:iterate>, но хочу сделать так чтобы при редактировании определенных полей, данные занасились в те же переменные (объекты класса в коллекции (например ArrayList)), а то только выводиться, можно редактировать, но отредактированные данные почему-то не заносятся в Form

Я присоеденяюсь к совету уважаемого C0s, и хочу дать ещё один маленький советик.., например можешь сделать на против каждой записи чекбоксик, а внизу таблицы либо с боку, короче где захош, кнопочку эдит, потом позначаешь поле для эдита и в отдельной форме(страничке) будешь выводить для редактирования даную запись из основной таблицы, либо можно просто ссылки сделать вместо чекбоксов но это уже на любителя.., и таким макаром у тебя входной и выходной потоки будт разными, тоесть ты будешь выводить даные допустим черз ActionFormList, а заносить в БД ActionFormEdit, по- моему ничё... ну это уже на любителя ..удачи
Re[4]: Struts
От: _Patriot_  
Дата: 08.02.06 19:54
Оценка: 1 (1)
Потратя кучу времени наконец-то нашел. т.к. задача является довольна часто встречающейся то вот выкладываю решение:
<logic:iterate name="userListForm" id="element" property="list" indexId="index">
<html:text property="list[${index}].name"/>
</logic:iterate>
Таким образом данные взятые из List формы могут быть редактированы, и занесены в соотв. элемент в List
userListForm — форма, list — коллекция
list[${index}].name — доступ к элементу коллекции по индексу (.name — элемент класса User, т.е. User.name),
${index} — значение текущего индекса.
чтобы осуществить данную операцию надо: определить в userListForm функции Object get(int index) и set(int index,Object ob),
использовать struts-html-el.tdl (для ${index})
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.