Цель нашего туториала заключается в том, чтобы создать приложение на Spring MVC максимально простым способом. Примерно так должен выглядеть результат после того, как вы выполните все шаги ниже.
Шаг первый
Открываем Eclipse.
Создаём новое рабочее пространство (workspace).
Шаг второй
Нажимаем File.
Выбираем New.
Dynamic Web Project.
Называем по желанию.
Устанавливаем Target Runtime на Apache Tomcat 8.0.
Шаг третий
Конвертируем проект в Maven для того, чтобы добавить все необходимые зависимости для работы со Spring MVC.
Правой кнопкой мыши нажимаем на проект.
Configure.
Convert to Maven project.
Шаг четвёртый
Открываем файл pom.xml и добавляем следующие jar зависимости:
В файле выше был использован тег <context:component-scan>. Он позволит Spring загрузить все компоненты пакета com.crunchify.controller.
Далее будет загужен CrunchifyHelloWorld.class. Также мы объявили bean (управляемый объект) viewResolver. Он сформирует представление (view), добавит префикс /WEB-INF/jsp и поставит .jsp на конце ModelAndView. Обратите внимание на то, что класс HelloWorld содержит метод, который возвращает объект ModelAndView с именем представления «Welcome». Находиться он будет в /WEB-INF/jsp/welcome.jsp.
Шаг шестой
Создаём новый файл web.xml. Указываем Spring MVC путь: /WebContent/WEB-INF/web.xml.
Данный код отформатирует DipatcherServlet по шаблону /welcome.jsp. Также не забывайте про файл index.jsp, который отвечает за отображение приветствия пользователю.
Стоит обратить внимание на имя в теге <servlet-name> в файле web.xml. Как только DispatcherServlet инициализирован, он будет искать файл с именем сервлета в формате [имя сервлета]-servlet.xml в папке WEB-INF. В данном случае этот файл будет называться crunchify-servlet.xml.
Шаг седьмой
Создаём класс для контроллера.
Правой кнопкой мыши нажимаем на Java Resources.
Выбираем src.
Создаём новый класс.
Пакет: com.crunchify.controller. Имя файла: CrunchifyHelloWorld.java
package com.crunchify.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/*
* author: Crunchify.com
*
*/
@Controller
public class CrunchifyHelloWorld {
@RequestMapping("/welcome")
public ModelAndView helloWorld() {
String message = "<br><div style='text-align:center;'>"
+ "<h3>********** Hello World, Spring MVC Tutorial</h3>This message is coming from CrunchifyHelloWorld.java **********</div><br><br>";
return new ModelAndView("welcome", "message", message);
}
}
Как видите, мы написали @controller перед декларированием класса и @RequestMapping("/welcome") после. Это сделано для того, чтобы Spring при сканировании нашего кода опознал эти строки как bean для обработки запроса. Аннотация @RequestMapping даёт фреймворку понять, что этот контроллер должен обрабатывать все запросы, начинающиеся с /welcome в URL.
Как уже было упомянуто, метод helloWorld() возвращает объект ModelAndView. Этот объект создаёт представление под название «welcome», а модель идёт в браузер для того, чтобы у пользователя был доступ к информации через JSP. Полный путь к нашему представлению будет таким: «/WEB-INF/jsp/welcome.jsp».
Также в ModelAndView есть сообщение с ключом «message» и значением в виде переменной message. Это данные, которые мы передаём в наше представление. В данном случае это просто строка, однако в реальном применении вместо строки у нас был бы java bean с данными.
Шаг восьмой
Делаем представление — создаём новый файл /WebContent/index.jsp.
<html>
<head>
<title>Spring MVC Tutorial Series by Crunchify.com</title>
<style type="text/css">
body {
background-image: url('https://crunchify.com/bg.png');
}
</style>
</head>
<body>
<br>
<div style="text-align:center">
<h2>
Hey You..!! This is your 1st Spring MCV Tutorial..<br> <br>
</h2>
<h3>
<a href="welcome.html">Click here to See Welcome Message... </a>(to
check Spring MVC Controller... @RequestMapping("/welcome"))
</h3>
</div>
</body>
</html>
Делаем ещё один файл /WebContent/WEB-INF/jsp/welcome.jsp.
<html>
<head>
<title>Spring MVC Tutorial by Crunchify - Hello World Spring MVC
Example</title>
<style type="text/css">
body {
background-image: url('https://crunchify.com/bg.png');
}
</style>
</head>
<body>${message}
<br>
<br>
<div style="font-family: verdana; padding: 10px; border-radius: 10px; font-size: 12px; text-align:center;">
Spring MCV Tutorial by <a href="https://crunchify.com">Crunchify</a>.
Click <a
href="https://crunchify.com/category/java-tutorials/"
target="_blank">here</a> for all Java and <a
href='https://crunchify.com/category/spring-mvc/' target='_blank'>here</a>
for all Spring MVC, Web Development examples.<br>
</div>
</body>
</html>
Вот так теперь должен выглядеть ваш workspace в eclipse.
Шаг девятый
Правой кнопкой мыши нажимаем на проект и запускаем его как Maven build.
В панель Goals вписываем «clean install».
Нажимаем Apply и Run.
После этого должно появиться сообщение об успешной сборке:
Если вы вдруг потеряли свои .jar файлы, то они находятся в папке /target.
Результат своей работы можете посмотреть на http://localhost:8080/CrunchifySpringMVCTutorial/ после того, как выполнили все шаги выше.
Разумеется, это не вся функциональность Spring MVC 5, а лишь малая его часть, однако мы надеемся, что в данной статье мы дали вам понимание того, как работает фреймворк.