Maven3路程5:用Maven创建Spring3 MVC项目|Java开发|码途山海.智隐长卷 -

程序人生|重庆纽新

找回密码
立即注册

QQ登录

只需一步,快速开始

欢迎访问【程序人生-重庆纽新】,本网站为软件开发人员视觉的IT资讯、软件开发中各种问题的解决办法!!
搜索
发新帖


2308

积分

0

好友

259

主题
楼主
发表于 2015-5-14 13:13:43 | 查看: 1015| 回复: 0
一、      环境
spring-framework-3.2.4.RELEASE
jdk1.7.0_11
Maven3.0.5
eclipse-jee-juno-SR2-win32
二、      创建Web项目
Eclipse中创建Web项目,见前边日志
三、      项目依赖,配置pom.xml文件
pom.xml文件如下:

  1. <font color="#000000"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3.   <modelVersion>4.0.0</modelVersion>
  4.   <groupId>com.lei.demo</groupId>
  5.   <artifactId>spring3-mvc-demo</artifactId>
  6.   <packaging>war</packaging>
  7.   <version>0.0.1-SNAPSHOT</version>
  8.   <name>spring3-mvc-demo Maven Webapp</name>
  9.   <url>http://maven.apache.org</url>
  10.   <dependencies>
  11.     <dependency>
  12.         <groupId>org.springframework</groupId>
  13.         <artifactId>spring-core</artifactId>
  14.         <version>3.2.4.RELEASE</version>
  15.     </dependency>
  16.     <dependency>
  17.         <groupId>org.springframework</groupId>
  18.         <artifactId>spring-web</artifactId>
  19.         <version>3.2.4.RELEASE</version>
  20.     </dependency>
  21.     <dependency>
  22.         <groupId>org.springframework</groupId>
  23.         <artifactId>spring-webmvc</artifactId>
  24.         <version>3.2.4.RELEASE</version>
  25.     </dependency>
  26.   </dependencies>
  27.   <build>
  28.     <finalName>spring3-mvc-demo</finalName>
  29.   </build>
  30. </project></font>
复制代码


四、      Controller & Mapping
在Spring3中,annotation的应用无处不在,以下创建一个Controller,命名为HelloController,请注意@RequestMapping的配置。
HelloController.java
  1. <font color="#000000">package com.lei.demo.controller;

  2. import java.text.SimpleDateFormat;

  3. import javax.print.attribute.standard.DateTimeAtCompleted;
  4. import javax.xml.crypto.Data;


  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.ModelMap;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;

  9. @Controller
  10. @RequestMapping("/welcome")
  11. public class HelloController {
  12.     @RequestMapping(method = RequestMethod.GET)
  13.     public String printWelcome(ModelMap model) {

  14.         model.addAttribute("message", "Spring3 MVC 例子");
  15.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
  16.         model.addAttribute("date", dateFormat.format(new java.util.Date()));
  17.         return "hello";
  18.     }
  19. }</font>
复制代码


五、      创建Jsp页面
hello.jsp如下

  1. <font color="#000000"><%@ page language="java" contentType="text/html; charset=UTF-8"
  2.     pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>hello</title>
  8. </head>
  9. <body>
  10.     <h1>Message : ${message}</h1>
  11.     <h2>当前时间:${date}</h2>
  12. </body>
  13. </html></font>
复制代码


六、      Spring 的配置文件
在WEB-INF下,创建配置文件mvc-dispatcher-servlet.xml如下
  1. <font color="#000000"><?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:context="http://www.springframework.org/schema/context"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="
  6.         http://www.springframework.org/schema/beans     
  7.         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  8.         http://www.springframework.org/schema/context
  9.         http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  10.         
  11.     <context:component-scan base-package="com.lei.demo.controller" />
  12.    
  13.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  14.         <property name="prefix">
  15.             <value>/WEB-INF/pages/</value>
  16.         </property>
  17.         <property name="suffix">
  18.             <value>.jsp</value>
  19.         </property>
  20.     </bean>   

  21. </beans></font>
复制代码


以上配置视图解析中,属性“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文件配置如下
  1. <web-app id="WebApp_ID" version="2.4"
  2.     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  4.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  5.   <display-name>Archetype Created Web Application</display-name>
  6.   <servlet>
  7.         <servlet-name>mvc-dispatcher</servlet-name>
  8.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  9.         <load-on-startup>1</load-on-startup>
  10.     </servlet>

  11.     <servlet-mapping>
  12.         <servlet-name>mvc-dispatcher</servlet-name>
  13.         <url-pattern>/</url-pattern>
  14.     </servlet-mapping>

  15.     <context-param>
  16.         <param-name>contextConfigLocation</param-name>
  17.         <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
  18.     </context-param>

  19.     <listener>
  20.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  21.     </listener>
  22. </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的配置。
八、      演示
先看下目录结构:
效果:




copycode.gif (263 Bytes, 下载次数: 447)

copycode.gif

收藏回复 只看该作者 道具 举报

高级模式
B Color Image Link Quote Code Smilies



QQ|小黑屋| 码途山海.智隐长卷 渝ICP备15002301号-2   渝公网安备50011202504426

GMT+8, 2025-5-18 05:07 , Processed in 0.046505 second(s), 27 queries .

©Copyright 程序人生!

©2012-2015重庆纽新

快速回复 返回顶部 返回列表