ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用Maven创建Spring3 MVC项目

用Maven创建Spring3 MVC项目

原创 Linux操作系统 作者:1984008004 时间:2015-06-29 08:53:58 0 删除 编辑

一、      环境

spring-framework-3.2.4.RELEASE

jdk1.7.0_11

Maven3.0.5

eclipse-jee-juno-SR2-win32

二、      创建Web项目

Eclipse中创建Web项目,见前边日志《Maven3路程(三)用Maven创建第一个web项目(1)》

三、      项目依赖,配置pom.xml文件

pom.xml文件如下:

复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0modelVersion> <groupId>com.lei.demogroupId> <artifactId>spring3-mvc-demoartifactId> <packaging>warpackaging> <version>0.0.1-SNAPSHOTversion> <name>spring3-mvc-demo Maven Webappname> <url>http://maven.apache.orgurl> <dependencies> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-coreartifactId> <version>3.2.4.RELEASEversion> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-webartifactId> <version>3.2.4.RELEASEversion> dependency> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-webmvcartifactId> <version>3.2.4.RELEASEversion> dependency> dependencies> <build> <finalName>spring3-mvc-demofinalName> build> project>
复制代码

 

四、      Controller & Mapping

在Spring3中,annotation的应用无处不在,以下创建一个Controller,命名为HelloController,请注意@RequestMapping的配置。

HelloController.java

复制代码
package com.lei.demo.controller; import java.text.SimpleDateFormat; import javax.print.attribute.standard.DateTimeAtCompleted; import javax.xml.crypto.Data; 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", "Spring3 MVC 例子");
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        model.addAttribute("date", dateFormat.format(new java.util.Date())); return "hello";
    }
}
复制代码

 

 

五、      创建Jsp页面

hello.jsp如下

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>hellotitle> head> <body> <h1>Message : ${message}h1> <h2>当前时间:${date}h2> body> html>
复制代码

 

 

六、      Spring 的配置文件

在WEB-INF下,创建配置文件mvc-dispatcher-servlet.xml如下

复制代码
xml version="1.0" encoding="UTF-8"?> <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.lei.demo.controller" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/pages/value> property> <property name="suffix"> <value>.jspvalue> property> bean> beans>
复制代码

 以上配置视图解析中,属性“prefix”和属性“suffix”负责组装呈现视图的前缀和后缀,再配合自己写的controller,此例是“HelloController.java”中的return ”hello“,那么对应关系就是如下:

[prefix]+[controller return]+[stuffix]="/WEB-INF/pages/"+"hello"+".jsp"=/WEB-INF/pages/hello.jsp

七、      Web配置文件和Spring配置文件的集成

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>Archetype Created Web Applicationdisplay-name> <servlet> <servlet-name>mvc-dispatcherservlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class> <load-on-startup>1load-on-startup> servlet> <servlet-mapping> <servlet-name>mvc-dispatcherservlet-name> <url-pattern>/url-pattern> servlet-mapping> <context-param> <param-name>contextConfigLocationparam-name> <param-value>/WEB-INF/mvc-dispatcher-servlet.xmlparam-value> context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class> listener> web-app>
复制代码

 

配置说明:

使用Spring MVC,配置DispatcherServlet是第一步。DispatcherServlet是一个Servlet(这个Servlet从HttpServlet继承而来),所以可以配置多个DispatcherServlet。DispatcherServlet是前置控制器,配置在web.xml文件中的。负责拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据“某某规则”分发到目标Controller(我们写的Action)来处理。“某某规则”:是根据你使用了哪个HandlerMapping接口的实现类的不同而不同。

mvc-dispatcher这个Servlet的名字是mvc-dispatcher,可以有多个DispatcherServlet,是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象。同时保存的ServletContext中和Request对象中。 

 

上边的web.xml为例

1.定义了一个名字为mvc-dispatcher的servlet,其中1是启动顺序,让这个Servlet随Servlet容器一起启动。

2.定义了哪个servlet应该处理什么样的url匹配,上例中定义mvc-dispatcher这个servlet来处理所有匹配“/”的url,

 /,会匹配到类似“/welcome”这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url”。

3.元素含有一对参数名和参数值,用作应用的ServletContext上下文初始化参数。参数名在整个Web应用中必须是惟一的。

这里contextConfigLocation这个参数名,是被spring定义好的,会去加载spring的配置文件

 

在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean,此处就会寻找mvc-dispatcher-servlet.xml文件来加载spring的配置。

八、      演示

 先看下目录结构:

效果:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25903968/viewspace-1715666/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Spring MV配置文件
请登录后发表评论 登录
全部评论

注册时间:2013-04-03

  • 博文量
    38
  • 访问量
    133609