Цель
Создать : создать простое приложение на технологии Spring MVC
Что требуется для начала
...
- Установленная JDK 6+,
- Maven 2
- Настроенные переменные окружения: JAVA_HOME=<путь к JDK>, M2_HOME=путь к мавен, PATH=JAVA_HOME\bin;MAVENM2_HOME\bin;%PATH%;
- Среда разработки, например IntelliJ Idea 11 Ultimate (в Community будет не так удобно работать с Spring и JSP)
Оглавление | ||
---|---|---|
|
Шаг 1: Создание maven проекта
...
Теперь можно открыть проект в среде разработки, обычно надо выбрать New Project -> Import from External Model -> Maven
Шаг 2: Добавление библиотек Spring в проект
...
Также стоит сразу добавить конфигурацию плагина-компилятора в секцию <build> </build>
для того, чтобы указать версию языка java, которую мы будем использовать. Даже если вы используете самую новую jdk 7, версия языка по умолчанию стоит 1.3, а на 1.76.
Блок кода |
---|
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> |
Шаг 3: Добавление диспетчера Spring MVC
...
Дальше, в контекстном меню папки src/main/java, выбрав new package создадим пакет ru.mai.dep806.mvcapp.controllercontrollers
Шаг 6: Добавление контроллера для главной страницы
Замечание для Idea: по-умолчанию пустые пакеты отображаются в дереве одной строкой компактно, если требуется их развернуть, например, для создания подпакета в середине пути, снимите флаг Compact empty middle package в меню над деревом)
Шаг 6: Добавление контроллера для главной страницы
Наконец то мы можем создать первый класс-контроллер WelcomeController (в пакете controllersНаконец то мы можем создать первый класс-контроллер WelcomeController (в пакете controller):
Блок кода |
---|
package ru.mai.dep806.mvcapp.controllers; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; /** * Контроллер для главной страницы приложения. */ @Controller public class WelcomeController { private int visitorCount = 0; @RequestMapping("/index.html") public String index(Model model) { model.addAttribute("visitorCount", visitorCount++); return "WEB-INF/jsp/index.jsp"; } } |
...
Теперь пока добавить "лицо" нашего приложения - view для главной страницы. Для этого, создадим папку jsp в WEB-INF и в ней файл index.jsp, чтобы наш контроллер нашел ее по полному пути внутри сервера: WEB-INF/jsp/index.htmljsp
Блок кода | ||
---|---|---|
| ||
<%@ page contentType="text/html;charset=UTF-8" language="java" %> isELIgnored="false" %> <html> <head> <title>Добро пожаловать</title> </head> <body> <h4> Добро пожаловать! </h4> Поздравляем, вы <b>${visitorCount}</b> посетитель и можете выиграть поездку в настолицу Java. - Джакарту <br/> <a <script srchref="http://wwwclck.gmodules.com/ig/ifr?url=yandex.ru/redir/dtype=stred/pid=7/cid=1228/*http://wwwpogoda.googleyandex.com/ig/modules/builtin_weather.xml&synd=open&w=320&h=200&title=%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%B0+%D0%BD%D0%B0+Java&lang=en&country=ALL&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script>ru/jakarta"><img src="http://info.weather.yandex.net/jakarta/2.ru.png" border="0" alt=""/><img width="1" height="1" src="http://clck.yandex.ru/click/dtype=stred/pid=7/cid=1227/*http://img.yandex.ru/i/pix.gif" alt="" border="0"/></a> </body> </html> |
Тут кроме HTML из интересного используется синтаксис Expression Language (EL) - ${visitorCount} для вывода значения переменной модели, которую мы установили в контроллере.вывода значения переменной модели, которую мы установили в контроллере.
Для того, чтобы можно было использовать EL, необходимо установить флаг isELIgnored="false", который по-умолчанию true для совместимости с предыдущими версиями JSP, где EL не интерпретировался.
Шаг 8: Конфигурация проекта для запуска в Tomcat
...
Раскрыть | ||
---|---|---|
| ||
|
Если все прошло успешно (в логах есть строка INFO: FrameworkServlet 'action': initialization completed), то можно зайти на страницу по адресу http://localhost/webapp/index.html
...
Поздравляем с созданием первого MVC приложения!