| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > архитектура MVC |
| Автор: Samotnik 23.10.2007, 15:42 | ||||
| Значит есть проект, в нем : Сервлет
jsp страница
ВСЕ РАБОТАЕТ. Нужно сделать архитектуру MVC т.е. нужно чтобы в проекте присутствовали три слоя (Model, View, Controller), представленные соответственно: сервис классом (реализующим бизнес логику создания фразы приветствия), JSP (реализующим способ отображения), servlet (контролирование процесса обработки запроса). Помогите плз.. Добавлено через 7 минут и 54 секунды Я пологаю, что нужно новый класс создать в котором будет формироваться это самое приветствие, но как? ведь он будет обычным классом, а не сервлетом, и получаетчся что request у него не будет |
| Автор: Vasay 23.10.2007, 16:07 | ||
А передать в него реквест, как параметр? |
| Автор: Samotnik 23.10.2007, 16:09 |
| Vasay, т.е. создать метод в новом классе и через параметр его вызвать? Я что тоне особо представляю, как его передать через параметр ?!? |
| Автор: mbasil 23.10.2007, 16:14 | ||
Вот Вам пример класса модели
Ваш класс SayHello по сути является контроллером, то есть он осуществляет прием параметров и диспетчирование. Пусть он создает объект модели и помещает его в Request в виде атрибута, а затем выполняет диспетчирование на Вашу JSP, которая собственно и есть View. JSP страница получить атрибут с объектом модели и выведет информацию. Добавлено через 4 минуты и 25 секунд Извините за двойной вывод и ошибку в имени конструктора (Конечно User, а не Player). Однако суть от этого не меняется. Да, пожалуйста не переопределяйте метод service(), лучше переопределить doGet() и doPost() |
| Автор: Samotnik 23.10.2007, 16:21 |
| Так мне ведь нужно 3-х слойную модель, т.е. 1 -сервис классом (реализующим бизнес логику создания фразы приветствия), Model 2 -JSP (реализующим способ отображения), View 3- servlet (контролирование процесса обработки запроса). Kontroler Я так себе это представляю, или нет? Добавлено через 11 минут и 17 секунд не получается |
| Автор: mbasil 23.10.2007, 16:33 |
| Так. Но модель не обязательно должна включать службу. В таком простом случае, как у Вас моделью может служить сущность инкапсулирующая принятые от пользователя параметры. Если Вы все-же хотите службу, то создавайте объект модели в службе, которая вызывается из сервлета контроллера. Это не меняет основной картины: у Вас уже есть прототип контроллера и представления. Их только надо подкорректировать и создать объект сущность. Добавлено через 5 минут и 27 секунд MVC - это всего лишь концепция. Она может быть реализована, как очень просто, так и сложно. Если хочется посложнее, используйте Struts. При этом модель все равно может представлять один единственный класс сущности. |
| Автор: Samotnik 23.10.2007, 16:39 |
| mbasil, да мне че по-проще Вот не получается пока сделать это и все!! Не могу понять как передать в качестве параметра request |
| Автор: Vasay 23.10.2007, 16:52 | ||
| Вобще, тебе не обязательно передавать реквест, можно и имя ("Name") У тебя сейчас все очень просто. Но если нужно передать реквест, то создаешь класс, внем метод
а в сервлете просто вызываешь этот метод, передавая ему реквест. |
| Автор: Samotnik 23.10.2007, 16:55 | ||
Все разобрался, оказалось вообще детский сад, и без никакого реквеста
|
| Автор: mbasil 23.10.2007, 17:08 | ||||
| В сервлете User u = new User( message ); request.setAttribute("user", u ); в JSP странице: <jsp:useBean id=”myBean” scope=”request” class=”model.User” /> или (это хуже) <% CustomerBean myBean = (CustomerBean) request.getAttribute(“myBean”); if ( myBean == null ) { . . . } %> Так как ссылку request определять не надо - на JSP странице она существует "автоматом". Добавлено через 3 минуты и 2 секунды Опять поспешил, переменная должна называться user, а не myBean:
или (это хуже)
|