В этой статье я хочу вам показать, как реализовать MVC приложение используя Spring framework, а точней Spring MVC.
MVC (Model-view-controller, «Модель-представление-поведение», «Модель-представление-контроллер») — схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения,пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные.
Добавим теперь в pom.xml dependency:
<properties> <spring.version>3.0.5.RELEASE</spring.version> </properties> <dependencies> <!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> </dependencies>
Controller & Mapping
В Spring 3, аннотация широко применяется всюду. @RequestMapping
доступен, начиная с версии 2.5, но теперь расширены для поддержки URL-адреса REST стиль в Spring MVC.
package com.devcolibri.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/welcome") public class HelloController { @RequestMapping(method = RequestMethod.GET) public String printWelcome(ModelMap model) { model.addAttribute("message", "Spring 3 MVC - Hello World"); return "hello"; } }
JSP Страница
Страница JSP для отображения значения передаваемого через контроллер.
<html> <body> <h1>Message : ${message}</h1> </body> </html>
Spring Configuration
В Spring 3, вам нужно включить “auto component scanning” (для контроллера) и установить “view resolver” вручную.
Файл : mvc-dispatcher-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.devcolibri.controller" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/pages/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans>
<context:component-scan base-package="com.devcolibri.common.controller" />
тут мы говорим spring, что искать контроллеры он должен в указанном пакете.
<value>/WEB-INF/pages/</value>
тут мы говорим spring, что все views(виды) будут лежать в WEB-INF/page
<value>.jsp</value>
и указываем что все views будут иметь расширение jsp. Обратите внимание, что это расширение будет после того как контроллер задеспачит view.
Интеграция web-приложений с Spring
Интеграция ничем не отличается, если сравнивать со старыми Spring 2.5, просто устанавливает Spring "ContextLoaderListener"
и "DispatcherServlet"
.
Файл: web.xml
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> </web-app>
Demo
URL : http://localhost:8080/[name project]/welcome
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
17 комментариев к статье "Spring 3. MVC - Hello world"