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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формы в Struts 
V
    Опции темы
Akeem
Дата 18.11.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

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



У меня на странице в один момент времени находиться только одна форма.  Страница обрабатывается одним контроллером (нужно ли так делать?).
Как мне "обьяснить" Struts что щас на странице находиться одна форма, а в другой момент будет находится другая форма?

Пример: 
1) форма регистрации
2) форма отсылки фидбека. 

Формы находятся в одном месте страницы, весь остальной контент страницы не меняется, только часть логин или фидбек
 smile 

Это конфигурируется в struts-config.xml либо  на уровне вешания двух контроллеров на две формы.


Юзаю Struts 1.3
Спасибо!

Это сообщение отредактировал(а) Akeem - 18.11.2009, 17:27


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW ICQ   Вверх
carper
Дата 18.11.2009, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я так и не понял, что надо объяснять STRUTS.

На странице можете размещать сколько угодно форм, например, воспользовавшись тэгом s:if, чтобы
показывать нужную.
Также можете привязывать к этой странице множество actions, или одну, или одну с разными методами (см. атрибут method в struts.xml).

Я лично, за исключением вырожденных случаев, когда, например, форма регистрации отличается от формы логина одним - двумя полями, стараюсь избегать условных операторов в jsp, отвечающих за вывод того либо другого визуального элемента, т.к. плохо читается код и вообще ...


P.S. А варианты с одинаковым заголовком и футером лучше решаются через тэги include и т.п.
PM MAIL   Вверх
Akeem
Дата 18.11.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

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



у меня не jsp а Velocity, хотя это не меняет ничего.

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

У меня в конфиге прописано вот такие три строчки. 
Код

<action path="/myaction" input="/previousaction" type="mycontroller"><forward name="someforward"></action>
<action path="/myaction" input="/myaction" name="loginform" type="mycontroller"><forward name="someforward"></action>
<action path="/myaction" input="/myaction" name="feedbackform" type="mycontroller"><forward name="someforward"></action>

в итоге я получаю что у меня распознается форма feedbackform вместо loginform 

Можно поподробнее про атрибут method, а то не совсем понятно как им пользоватся.


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

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


Бывалый
*


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

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



Значится так (пишу сразу здесь, извиняйте за опечатки в коде), вот один из способов с двумя формами и про атрибут method:

Код

<action name="MyAction_*" method="{1}" class="mypackage.MyAction">
    <result name="input">${login}</result>        
</action>
 
Это в struts.xml

Код

  ...
  class MyAction extends ActionSupport implements ... {
    private String login;
    public String getLogin() {
      return login;
    } 

    public String loginUser() {
      .....
      login = "/jsp/nonsec/login.jsp";
      return Action.INPUT;  
    }

     public String feedback() {
      .....
      login = "/jsp/nonsec/feedback.jsp";
      return Action.INPUT;  
    }
    ....
  }


Ниже, код той формы из которой вы обращаетесь к action:
Код

....
<body>
   Тут что-то типа меню, или : 
   <s:from action="MyAction_feedback" .....

   <s:from action="MyAction_loginUser" .....
</body>


Ну про то как включать стандартные заголовки в странички, думаю и так ясно.


Сразу же отвечаю на 2-ой вопрос, а как быть если страничку все же хочется иметь одну?

Аналогично, только убираем ${login} из <result name="input">${login}</result> ,
 зато анализируем login (тогда лучше его сделать boolean) в тэге s:if

Код

   <s:if test="login ">Тут рисуем форму логина</s:if>
   <s:else>Ну тогда рисуем форму обратной связи</s:else>


Вообще, вариантов может быть куча, но поскольку логически ваши формы занимаются разными вещами, я бы не рекомендовал маппить их на одну страничку.

PM MAIL   Вверх
Akeem
Дата 23.11.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 14.7.2006
Где: Киев/Украина

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



Проблему решил изменением логики.  Если мне нужно чтобы пользователь был залогинен, то я ласково прошу пользователя перейти на страницу логина и оттуда после авторизации возвращаю страницу обратно. 

Это сообщение отредактировал(а) Akeem - 23.11.2009, 17:39


--------------------
Мир огромен и мы только муравьи в нём! (С) formicha

PM MAIL WWW 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.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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