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

Поиск:

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


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Тяжело быть начинающим... Ничего не знаю, приходится людей отвлекать.

Ситуация такая: с сервера приходит трехуровневый иерархичекий обьект (ссылка на его корень). В соответствии с тем, что содержится в его узлах, создаются определенные формы (списки, метки и т.д.). Кроме того, эти списки заполняются информацией из дочерних элементов. Можно писать весь код (а он не маленький) в самой странице, но ведь это, по-моему, неграмотно. Как действовать?
Еще приходило в голову создать некий объект, который дописывал бы HTML-код в страницу, но и так тоже вроде не делают.

Напишите, плз, как принято обычно поступать в такой ситуации.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
AntonSaburov
Дата 14.1.2005, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



В такой ситуации часто используется Struts - систсема, которая предназначена для такого рода страниц. Туда вводятся специальные тэги, которые помогают легко реализовать такого рода сложную логику. Можно посомтреть также JFS - это что-то подобное от SUN.
PM MAIL WWW ICQ   Вверх
batigoal
Дата 14.1.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Да, об этом я тоже думал. Но его я тоже пробовал только разок. Не подскажешь, как там это делается (вывод полей в соответствии с некоторыми условиями)? Общие принципы я знаю. Но там я пока видел только один способ обмена информацией между формой и собственно объектом - session.setAttribute.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Шмель
Дата 17.1.2005, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 2
Всего: 18



К примеру, если используются JSP и таглибы struts, то проверку условий и вывод полей можно реализовать так:

Код

<html:form action="someAction.do" method="post">
 <logic:equal name="someBean" property="propertyType" value="list">
<%-- проверяем значение свойства  someProperty, принадлежащего бину someBean, на равеноство строке list. Если значения совпадают, то выполнится код, находящийся внутри тэга logic:equal - пусть это будет вывод элемента формы --%>
   <html:select property="propertyOfForm">
     <html:options collection="collectionBean" labelProperty="propertyToDisplay" property="valueToSend" />
   </html:select>
 </logic:equal>
 <html:submit />
</html:form>


Этот код должен отрендериться в форму со списком и кнопкой для отправки если у объекта someBean поле propertyType равняется "list". Тэги html:xxx - служат, в основном, для отрисовки форм. Таглиб logic содержит коллекцю тэгов, позволяющих реализовывать логические операции - logic:equal - равенство, logic:notEqual - неравенство и т.д. Там же есть тэги для итераций по спискам (logic:iterate), проверка наличия бина в области видимости (logic:present) ну и вообще там много чего интересного есть. Читать тут
--------------------
будешь на Земле - заходи
PM MAIL ICQ   Вверх
batigoal
Дата 17.1.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



BIG BIG THANKS за <logic:equal>! Если бы мог, прибавил бы тебе репутацию smile


Кстати, заодно хотел спросить: в том же struts-config - как указать forward на другой каталог (родительский или относительно корневого)? У меня он все время ссылается относительно текущего...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Шмель
Дата 17.1.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 2
Всего: 18



не за что smile
Я так понял, речь идет о модулях

У тэга forward есть два аттрибута: contextRelative и module. Если я не ошибаюсь, то если contextRelative = true, то поиск ресурса начинается относительно текущего контекста. К примеру есть УРЛ
Код

http://localhost:8000/myapp/admin/index.jsp

Текущий контекст - http://localhost:8000/myapp/admin

Такой форвард

Код

<forward name="forw" contextRelative="true" path="somePage.jsp"/>


организует поиск относительно http://localhost:8000/myapp/admin , а такой

Код

<forward name="forw" contextRelative="false" path="somePage.jsp"/>


относительно http://localhost:8000/myapp

В общем, почитай ссылку (см. выше)
--------------------
будешь на Земле - заходи
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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