为java web 项目添加 spring MVC 框架
今天花了点时间将之前整理的 spring MVC 项目的搭建做了下笔记,也把之前的做的个 Demo 一起放上来,给学习 spring MVC 框架的朋友一个引导吧!接下来我们就开始吧:
添加 spring 类库(如下图所示):
在 WEB-INF 下创建 applicationContext.xml 文件 , 内容大致如下:
xml version = "1.0" encoding = "UTF-8" ?>
< beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee = "http://www.springframework.org/schema/jee"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd" >
beans >
在 WEB-INF 下创建 springMVCTemplet-servlet.xml 文件 ( 其中 springMVCTemplet 为你项目的名称 ), 内容大致如下:
xml version = "1.0" encoding = "UTF-8" ?>
< beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns:p = "http://www.springframework.org/schema/p"
xmlns:context = "http://www.springframework.org/schema/context"
xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" >
< bean
class = "org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix = "/" p:suffix = ".jsp"
p:viewClass = "org.springframework.web.servlet.view.JstlView" />
< context:component-scan base-package = "com.lym.control" />
beans >
接下来需要在 web.xml 中进行相应的配置,配置如下:
xml version = "1.0" encoding = "UTF-8" ?>
< web-app version = "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
< context-param >
< param-name > contextConfigLocation param-name >
< param-value >
/WEB-INF/applicationContext.xml
param-value >
context-param >
< servlet >
< servlet-name > springMVCTemplet servlet-name >
< servlet-class >
org.springframework.web.servlet.DispatcherServlet
servlet-class >
< load-on-startup > 0 load-on-startup >
servlet >
< servlet-mapping >
< servlet-name > springMVCTemplet servlet-name >
< url-pattern > *.htm url-pattern >
servlet-mapping >
< listener >
< listener-class >
org.springframework.web.context.ContextLoaderListener
listener-class >
listener >
< welcome-file-list >
< welcome-file > index.jsp welcome-file >
welcome-file-list >
web-app >
在 web.xml 中,我们告诉容器需要加载 applicationContext.xml 配置文件;对 spring MVC 也进行了相应的配置,其中 URL 以 .htm 为后缀的请求将交由 DispatcherServlet 进行处理, DispatcherServlet 会将请求分发给相应的控制器进行处理;同时增加 spring 的监听器。
到这里 spring MVC 项目已经搭建完成,接下来我们进行一个简单的测试。
在 src 目录下创建包: com.lym.control
创建类 IndexController ,代码如下:
package com.lym.control;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse ;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@RequestMapping ( "/index.htm" )
public ModelMap index(HttpServletRequest request,
HttpServletResponse response) throws Exception{
ModelMap model = new ModelMap();
model.addAttribute( "hello" , "hello Word!" );
return model;
}
}
当我们通过浏览器访问 /index.htm 时, IndexController 类的 index 方法将接受处理请求,这里我们只是简单的往 request 属性中添加 hello 属性,让对应的 jsp 页面可以获取到该属性。
在 index.jsp 上引入 jstl ,然后使用 ${hello} 将 hello 属性值显示出来。
例子参见: springMVCTemplet.rar (导入 MyEclipse 部署到 tomcat 运行)