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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> совет по обработке формы поиска 
:(
    Опции темы
vns955
Дата 7.12.2009, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем здрям!

Я хочу сделать форму (jsp, Web application) с полем для поиска по какому-либо критерию (скажем по названиям клиентов, содержащих требуемую строку, like). Но хотелось бы чтоб текущая строка в поле ввода сохранялась в процессе работы (в течение сеанса) текущего пользователя. Если сохранять это поле, возращаемое в command (методом onSubmit), в простую переменную, определенную в текущем классе, то переменная получается разделяемая, т.к. этот класс синглетный. Т. обр. если логинится новый пользователь, то у него не пустая строка, а то что ввел предыдущий пользователь . Подскажите плз как решить эту проблему проще. Использую Spring 2.0.

Заранее спасибо!
PM MAIL   Вверх
ivanovpv
Дата 7.12.2009, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Храните значение переменной в HTTP сессии и при инициализации формы вытаскивайте его из сессии...

Это сообщение отредактировал(а) ivanovpv - 7.12.2009, 22:55


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
vns955
Дата 8.12.2009, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А как это сделать сказать вкратце можете или привести пример кода? Спасибо.
PM MAIL   Вверх
DimW
Дата 8.12.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



JSP:
Код

<%
String value = "";
if (request.getSession().getAttribute("myValue") != null)
  value = request.getSession().getAttribute("myValue").toString;
else
  request.getSession().setAttribute("myValue", request.getParameter("elementName"));
%>

<html>
  <body>
    <input type='text' name='elementName' value='<%=value%>'/>
  </body>
</html>


Это сообщение отредактировал(а) DimW - 8.12.2009, 09:30
PM MAIL ICQ   Вверх
ivanovpv
Дата 8.12.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Да, так тоже можно, а можно и по другому - в JSP всегда есть переменная session
Код

<html>
  <body>
    <input type='text' name='elementName' value='<%=session.getAttribute("myValue")%>'/>
  </body>
</html>


А класть значение параметра myValue в атрибут сессии лучше все же обработчике формы - MVC все же таки smile


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
DimW
Дата 8.12.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



Цитата(ivanovpv @  8.12.2009,  09:43 Найти цитируемый пост)
в JSP всегда есть переменная session

честно говоря очень редко приходится в jsp писать подобные обработчики, это скорее рефлекторно получилось smile

Цитата(ivanovpv @  8.12.2009,  09:43 Найти цитируемый пост)
MVC все же таки

MVC хорошо понимается, когда есть определенный багаж знаний, судя по вопросу ТС - ему нужно понять как вообще с этим жить...

vns955, в варианте что я предложил есть косяк - значение поиска в сессию падает один раз  smile, ну это уже сам поправишь.  
PM MAIL ICQ   Вверх
ivanovpv
Дата 8.12.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Цитата(DimW @  8.12.2009,  09:55 Найти цитируемый пост)
MVC хорошо понимается, когда есть определенный багаж знаний


Ерунда весь этот MVC... Ну то есть конечно надо стараться следовать этому, но не надо из него делать фетиш и пытаться абсолютизировать паттерн. Важно чувствовать грань за которой борьба за чистоту паттерна начинает сказываться на продуктивности программирования, когда 90% уходит не выполнение задачи, а на попыткам сохранения чистоты. Здесь то же самое. Есть борцы за чистоту MVC на дух не переносящие скриптлеты в JSP страничках и пытающиеся все решить средствами custom tags и проч. Я смайлик поставил имея ввиду только это, что тут есть небольшой скриптлетик, который на взгляд некоторых апологетов в общем то не очень ложится в схему MVC, зато сильно облегчает жисть.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
DimW
Дата 8.12.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



Цитата(ivanovpv @  8.12.2009,  12:47 Найти цитируемый пост)
сказываться на продуктивности программирования

а что по вашему продуктивное программирование - это типа когда мысль прет и нужно ее по быстрому изложить там где придется?  smile
 
Цитата(ivanovpv @  8.12.2009,  12:47 Найти цитируемый пост)
когда 90% уходит не выполнение задачи, а на попыткам сохранения чистоты

ivanovpv, вы знаете, часто 90% потраченного времени через некоторое время преврашается в 900% сэкономленного, а грань о которой вы говорите весьма не однозначна, все зависит от опыта и количества грабрей собранных собственным лбом.

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



PM MAIL ICQ   Вверх
acvilon
  Дата 8.12.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



DimW, согласен с тобой.
Вообще, по максимум нужно использовать jstl, и если уж совсем никак писать скриплеты. И лучше подумать, может стоит это вынести как метод куда-нибудь. К примеру, в утилиты.
PM MAIL ICQ   Вверх
DimW
Дата 8.12.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



Цитата(acvilon @  8.12.2009,  15:33 Найти цитируемый пост)
DimW, согласен с тобой.

я не совсем уверен в том, что ты понял что я хотел сказать.
просто все архитектуры/технологии ограничены рамками их использования, и как часто бывает, разработка того или иного ПО в силу своей специфики не умещается в эти рамки.
лично я не вижу ничего страшного в скриптлетах, если они действительно оправданы - хотябы даже экономически...
если говорить конкретно о том примере который я привел, то в случае, если хранение параметров поиска является концепцией приложения то стоит подумать о диспатчере в виде сервлета, если это будет использоваться всегда на одной странице, то у меня сомнение в целесообразности использования сервлета.
вобщем тут спорить не очем, все и так слишком очевидно smile
PM MAIL ICQ   Вверх
vns955
Дата 8.12.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо за советы smile

Но тогда возникают такие вопросы:
1. У меня таких форм много будет в проекте и тоже будет необходимость сохранять переменные. Как обеспечить уникальность имен атрибутов?
Может к имени переменной ещё и присоединять текущий сервлет (getServletName())?
2. Ограничено ли число атрибутов для сессии? Не будет ли переполнений стека и т.п. и вообще не будет ли излишней нагрузки на сервер? Какие-то есть ещё подводные камни?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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