| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Получение Beanа на jsp странице |
| Автор: NiUb 6.4.2010, 14:18 | ||
| Здравствуйте Я столкнулся с такой проблемой - есть приложение, на jsp странице отображаются данные из БД , весь процесс ковыряний в БД реализован на самой странице, при получении из БД нужных данных, формируется объект(при помощи hibernate) Затем при помощи pageContext.setAttribute(*,*,*) этот объект "устанавливается" для этой страницы => я могу из скриплета вызывать методы этого объекта и тд и тп, вобщем работать с ним как с обычным pojo Моя задача убрать логику работы с БД с jsp страницы, путем использования либо сервлетов, либо спринг контроллеров Я пробую сделать так - использую AbstractCommandController и метод protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) - из контоллера лезу в БД создаю требуемый объект, затем создаю map с параметрами которые мне будут нужны на jsp (вместе с требуемым объектом) и передаю это все сюда
Вот теперь вопрос - могу я как то в таком случае достучаться до нужного мне объекта которые храниться в "mymap", то есть достучаться я до него могу так mymap.myobject, но мне нужно чтобы на странице существовал сам объект myobject, так чтобы я мог вызывать его методы из скриплета Такое возможно ? или можно как то через обычные сервлеты сделать ? Заранее благодарен за помощь |
| Автор: garbuz 6.4.2010, 15:58 | ||
| Все возможно. Если используете спринг, то кладите все в map, на транице сразу дергайти объект без обращения к map. Вызов методов в скриплетах не очень хорошая практика и вообще сами скриплеты тоже. На так как вас на страницу нужно передать бин, то скорее всего необходимо отбразить значения его полей. Пользуйтесь jstl, вытягивате значение через
|
| Автор: NiUb 6.4.2010, 16:29 |
| garbuz, спасибо за отклик, но мне нужно именно вызывать методв а не поля, понимаю что это не сильно хорошая практика, но логика была изначально реализованна так, и очень тяжело и долго переносить её в контроллер Мне бы какой то приёмчик с <jsp:useBean / > но только уже инициализированным моим злополучным объектом .... ) |
| Автор: drG100k 11.4.2010, 22:12 | ||
А чем обычный useBean не нравится? Выставил scope="application" и лови свой инстанс наздоровье (если объект УЖЕ есть) Этот таг сначала ищет объект бина, если не находит, то уж тогда создаёт. |
| Автор: NiUb 13.4.2010, 21:30 | ||
| Спасибо Я воспользовался в контроллере requsest.setAttribute() а в jsp в скриплете словил инстанс getAttribute()утом
Тут я не допонял( Что Вы имели ввиду ? Где я могу инициализировать свой бин с выставлением scope ? |