В этой статье я покажу вам, как создать свой первый простой шаблон Spring MVC. Прежде чем мы начнем, я предполагаю, что вы уже знакомы с основами Spring MVC. Если вы этого не сделаете, я предлагаю сначала прочитать некоторые введения в Spring . Ниже приведены некоторые хорошие ресурсы для начала.
Давайте начнем. Настройте новый пустой проект. Установите все зависимости API в вашем classpath, затем настройте ваш web.xml следующим образом:
<WEB-APP xmlns="http://java.sun.com/xml/ns/javaee" version="2.5" schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi="http://www.w3.org/2001/XMLSchema-instance"> <SERVLET> <SERVLET-NAME>myproject</SERVLET-NAME> <SERVLET-CLASS>org.springframework.web.servlet.DispatcherServlet</SERVLET-CLASS> <LOAD-ON-STARTUP>1</LOAD-ON-STARTUP> </SERVLET> <SERVLET-MAPPING> <SERVLET-NAME>myproject</SERVLET-NAME> <URL-PATTERN>/index.html</URL-PATTERN> </SERVLET-MAPPING> <SERVLET-MAPPING> <SERVLET-NAME>myproject</SERVLET-NAME> <URL-PATTERN>*.html</URL-PATTERN> </SERVLET-MAPPING> <WELCOME-FILE-LIST> <WELCOME-FILE>index.html</WELCOME-FILE> </WELCOME-FILE-LIST> </WEB-APP>
Я установил два сопоставления, одно для шаблона URL, а другое для страницы приветствия. Далее идет настройка бобов. В вашем myproject-servlet.xml поместите эти конфигурации:
<BEANS xmlns="http://www.springframework.org/schema/beans" schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" xsi="http://www.w3.org/2001/XMLSchema-instance"> <BEAN class=com.myproject.controllers.PageController name="myProjectController"> <property name="methodNameResolver" ref="actionMethodNameResolver"> </property> </BEAN> <BEAN class=org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver id=actionMethodNameResolver> <property name="mappings"> <PROPS> <PROP key="/index.html">showIndex</PROP> </PROPS> </property> </BEAN> <BEAN class=org.springframework.web.servlet.handler.SimpleUrlHandlerMapping id=simpleUrlMapping> <property name="mappings"> <PROPS> <PROP key="*.html">myProjectController</PROP> </PROPS> </property> </BEAN> <BEAN class=org.springframework.web.servlet.view.ResourceBundleViewResolver id=viewResolver> <property name="basename" value="views"></property> </BEAN> </BEANS>
Я использовал ResourceBundleViewResolver для настройки представлений с использованием файла свойств, чтобы мы могли редактировать конфигурации представлений без перекомпиляции проекта. Компонент actionMethodNameResolver — это место, где все ваши URL-запросы будут отправлены на соответствующий контроллер. Поскольку prop /index.html имеет значение showIndex , ваш PageController должен содержать этот метод:
package com.myproject.controllers; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class PageController extends MultiActionController { public ModelAndView showIndex(HttpServletRequest request, HttpServletResponse response) { return new ModelAndView(index-page, "model", "Hello World!"); } }
Следующим шагом является создание представления index-page . Создайте файл свойств с именем views . Он должен содержать класс и URL вашего jsp. Обратите внимание, что вам нужна библиотека jstl в вашем пути к классам.
index-page.class=org.springframework.web.servlet.view.JstlView index-page.url=WEB-INF/index.jsp
Создайте index.jsp под WEB-INF. Чтобы получить модель из нашего контроллера, мы можем использовать этот код.
<H1>${model}</H1>