Spring MVC 入门教程示例 (一)
今天和大家分享下 Spring MVC 入门教程
首先还是从 HelloWorld web 工程开始
--------------------------
1.首先创建一个Maven Web工程(此处 略啦)
2.增加项目依赖jar
此jar包版本用户可以自行决定。在pom文件增加即可
例如:我这里使用的版本为 3.0.5版本
<properties>
<spring.version>3.0.5.RELEASE</spring.version>
</properties>
1 <!-- spring jars --> 2 <dependency> 3 <groupId>org.springframework</groupId> 4 <artifactId>spring-core</artifactId> 5 <version>${spring.version}</version> 6 </dependency> 7 <dependency> 8 <groupId>org.springframework</groupId> 9 <artifactId>spring-web</artifactId> 10 <version>${spring.version}</version> 11 </dependency> 12 <dependency> 13 <groupId>org.springframework</groupId> 14 <artifactId>spring-webmvc</artifactId> 15 <version>${spring.version}</version> 16 </dependency>
3. 编写web.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 5 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 6 7 <display-name>Spring Web MVC Application HelloWorld</display-name> 8 9 <context-param> 10 <param-name>contextConfigLocation</param-name> 11 <param-value>/WEB-INF/MVCHelloWord-servlet.xml</param-value> 12 </context-param> 13 14 <listener> 15 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 16 </listener> 17 18 <servlet> 19 <servlet-name>MVCHelloWord</servlet-name> 20 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 21 <load-on-startup>1</load-on-startup> 22 </servlet> 23 <servlet-mapping> 24 <servlet-name>MVCHelloWord</servlet-name> 25 <url-pattern>/</url-pattern> 26 </servlet-mapping> 27 28 <welcome-file-list> 29 <welcome-file>index.jsp</welcome-file> 30 </welcome-file-list> 31 32 </web-app>
说明:
1. context-param 节点:
此节点中配置的是需要加载的配置文件路径 按照上面的示例 应用程序会去加载 WEB-INF 目录下 MVCHelloWorld 配置文件
2 servlet节点:
和普通的J2EE工程中的Servlet没有本质区别 只是 servlet-class 中使用的是Spring提供的Class 而已
注:
servlet 中 servlet-name 名称 和 context-param 中 param-name的名字是有关系的。
servlet-name 名字 是 param-name名字的前缀 ,而 param-name中还要增加 -servlet
4.编写 MVCHelloWorld-servlet.xml 配置文件
此文件放置路径在 之前的 web.xml 中已经明确定义
1 <beans xmlns="http://www.springframework.org/schema/beans" 2 xmlns:context="http://www.springframework.org/schema/context" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation=" 5 http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 7 http://www.springframework.org/schema/context 8 http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 9 10 11 <context:component-scan base-package="net.cc.controller" /> 12 13 <bean 14 class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 15 <property name="prefix"> 16 <value>/WEB-INF/page/</value> 17 </property> 18 <property name="suffix"> 19 <value>.jsp</value> 20 </property> 21 </bean> 22 23 </beans>
bean 中配置的是访问的资源 前缀、后缀 信息。
prefix 表示前缀,资源都在 WEB-INF 下 page 中
suffix 表示后缀,资源后缀 都是 .jsp 结尾
5. 编写 Java 代码
新建 net.cc.controller 包 并新建类:
1 package net.cc.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.ui.ModelMap; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.RequestMethod; 7 8 /** 9 * @author test 10 * @create 2014-8-15下午01:48:43 11 * @version 1.0 12 */ 13 @Controller 14 @RequestMapping("/welcome") 15 public class HelloController { 16 17 @RequestMapping(method = RequestMethod.GET) 18 public String printWelcoem(ModelMap model) { 19 20 model.addAttribute("message", "Hello World!"); 21 return "hello"; 22 } 23 }
HelloController 类 与一般Java类没有什么区别,不需要实现或继承Spring中类
@Controller 表示此类是一个控制器
@RequestMapping 表示 /welcome 用户访问此路径时 会进入此类
printWelcome类中 只是给model中 增加一个信息 key是 message value是 Hello World 并return 一个hello
这个 hello最终会变成 hello.jsp 因为在之前的配置文件中已经确定了 后缀都是 .jsp 结尾 所以 用户需要编写一个 hello.jsp文件
这个 hello.jsp文件 放置的目录也已经在之前的配置文件中定义好。 在 WEB-INF 下 page 中 用户在此目录下创建 hello.jsp 文件即可
当用户想在 界面上获取 控制器中的内容 可以用 ${} 即可
按照上面的代码示例, 如果想在 hello 界面上 获取信息 可使用 ${message} 即可打印出 Hello World
----------------------------------------------------
至此 HelloWorld 工程编写完成 用户可直接部署到 Tomcat 等皆可
访问路径 http://IP:port/工程名称/welcome
--------------------------------------------------------------------------------------------------------
如果有描述不正确的地方 还请各位指出~~ 谢谢 😄