| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > совет по обработке формы поиска |
| Автор: vns955 7.12.2009, 17:50 |
| Всем здрям! Я хочу сделать форму (jsp, Web application) с полем для поиска по какому-либо критерию (скажем по названиям клиентов, содержащих требуемую строку, like). Но хотелось бы чтоб текущая строка в поле ввода сохранялась в процессе работы (в течение сеанса) текущего пользователя. Если сохранять это поле, возращаемое в command (методом onSubmit), в простую переменную, определенную в текущем классе, то переменная получается разделяемая, т.к. этот класс синглетный. Т. обр. если логинится новый пользователь, то у него не пустая строка, а то что ввел предыдущий пользователь . Подскажите плз как решить эту проблему проще. Использую Spring 2.0. Заранее спасибо! |
| Автор: ivanovpv 7.12.2009, 22:54 |
| Храните значение переменной в HTTP сессии и при инициализации формы вытаскивайте его из сессии... |
| Автор: vns955 8.12.2009, 02:31 |
| А как это сделать сказать вкратце можете или привести пример кода? Спасибо. |
| Автор: DimW 8.12.2009, 09:29 | ||
JSP:
|
| Автор: ivanovpv 8.12.2009, 09:43 | ||
Да, так тоже можно, а можно и по другому - в JSP всегда есть переменная session
А класть значение параметра myValue в атрибут сессии лучше все же обработчике формы - MVC все же таки |
| Автор: DimW 8.12.2009, 09:55 |
честно говоря очень редко приходится в jsp писать подобные обработчики, это скорее рефлекторно получилось MVC хорошо понимается, когда есть определенный багаж знаний, судя по вопросу ТС - ему нужно понять как вообще с этим жить... vns955, в варианте что я предложил есть косяк - значение поиска в сессию падает один раз |
| Автор: ivanovpv 8.12.2009, 12:47 |
Ерунда весь этот MVC... Ну то есть конечно надо стараться следовать этому, но не надо из него делать фетиш и пытаться абсолютизировать паттерн. Важно чувствовать грань за которой борьба за чистоту паттерна начинает сказываться на продуктивности программирования, когда 90% уходит не выполнение задачи, а на попыткам сохранения чистоты. Здесь то же самое. Есть борцы за чистоту MVC на дух не переносящие скриптлеты в JSP страничках и пытающиеся все решить средствами custom tags и проч. Я смайлик поставил имея ввиду только это, что тут есть небольшой скриптлетик, который на взгляд некоторых апологетов в общем то не очень ложится в схему MVC, зато сильно облегчает жисть. |
| Автор: acvilon 8.12.2009, 15:33 |
| DimW, согласен с тобой. Вообще, по максимум нужно использовать jstl, и если уж совсем никак писать скриплеты. И лучше подумать, может стоит это вынести как метод куда-нибудь. К примеру, в утилиты. |
| Автор: DimW 8.12.2009, 16:36 |
я не совсем уверен в том, что ты понял что я хотел сказать. просто все архитектуры/технологии ограничены рамками их использования, и как часто бывает, разработка того или иного ПО в силу своей специфики не умещается в эти рамки. лично я не вижу ничего страшного в скриптлетах, если они действительно оправданы - хотябы даже экономически... если говорить конкретно о том примере который я привел, то в случае, если хранение параметров поиска является концепцией приложения то стоит подумать о диспатчере в виде сервлета, если это будет использоваться всегда на одной странице, то у меня сомнение в целесообразности использования сервлета. вобщем тут спорить не очем, все и так слишком очевидно |
| Автор: vns955 8.12.2009, 16:50 |
| Спасибо за советы Но тогда возникают такие вопросы: 1. У меня таких форм много будет в проекте и тоже будет необходимость сохранять переменные. Как обеспечить уникальность имен атрибутов? Может к имени переменной ещё и присоединять текущий сервлет (getServletName())? 2. Ограничено ли число атрибутов для сессии? Не будет ли переполнений стека и т.п. и вообще не будет ли излишней нагрузки на сервер? Какие-то есть ещё подводные камни? |