标签:
SpringMVC+Maven整合(注解形式)
SpringMVC是目前比较主流的框架,加上注解形式,大大的增加了开发人员的效率,而且采用注解的形式,省去了很多的XML的配置,使代码看起来清晰度提升了很多。
下面教大家如何配置,这里创建工程就不一一介绍了,我们直接从pom.xml的配置开始。
1.SpringMVC所用到的Maven坐标
<properties> <spring-version>3.1.0.RELEASE</spring-version> </properties> <dependencies> <!--Spring start--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-version}</version> </dependency> <!--Spring start--> <!--Log4j start--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <!--Log4j end--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--jstl 标签库--> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> </dependencies>
这里选用的Spring版本是3.1.0.RELEASE的,大家可以根据自己的需求而定版本。
2.web.xml的配置
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 5 id="WebApp_ID" version="3.0"> 6 7 <context-param> 8 <param-name>contextConfigLocation</param-name> 9 <!-- 应用上下文配置文件 --> 10 <param-value>classpath:spring/spring-context.xml</param-value> 11 </context-param> 12 <listener> 13 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 14 </listener> 15 16 <!-- 配置spring核心servlet --> 17 <servlet> 18 <servlet-name>daily-collect</servlet-name> 19 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 20 <init-param> 21 <description>spring mvc 配置文件</description> 22 <param-name>contextConfigLocation</param-name> 23 <param-value>classpath:spring/spring-mvc.xml</param-value> 24 </init-param> 25 <load-on-startup>1</load-on-startup> 26 </servlet> 27 28 <listener> 29 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 30 </listener> 31 <context-param> 32 <param-name>log4jConfigLocation</param-name> 33 <param-value>classpath:log4j.properties</param-value> 34 </context-param> 35 36 <!-- 这里注意servlet-name必须要和上面配置spring核心的servlet-name的名字一样,这里有映射的关系 --> 37 <!-- url-pattern配置为/,不带文件后缀,会造成其它静态文件(js,css等)不能访问。如配为*.do,则不影响静态文件的访问 --> 38 <servlet-mapping> 39 <servlet-name>daily-collect</servlet-name> 40 <url-pattern>*.do</url-pattern> 41 </servlet-mapping> 42 43 <!-- filer过滤器是避免请求数据字符集的乱码处理 --> 44 <filter> 45 <filter-name>CharacterEncodingFilter</filter-name> 46 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 47 <init-param> 48 <param-name>encoding</param-name> 49 <param-value>utf-8</param-value> 50 </init-param> 51 </filter> 52 <!-- 与上面的名字要保持一致 --> 53 <filter-mapping> 54 <filter-name>CharacterEncodingFilter</filter-name> 55 <url-pattern>/*</url-pattern> 56 </filter-mapping> 57 <!-- 设置默认的访问路径 --> 58 <welcome-file-list> 59 <welcome-file>pages/Index.jsp</welcome-file> 60 </welcome-file-list> 61 </web-app>
3.spring-context.xml配置(这里配置的是一些全局用到的bean或者加载配置文件,引用其他spring的xml)。
1 <beans xmlns="http://www.springframework.org/schema/beans" 2 xmlns:context="http://www.springframework.org/schema/context" 3 xmlns:p="http://www.springframework.org/schema/p" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6 xsi:schemaLocation="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.xsd 10 http://www.springframework.org/schema/mvc 11 http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 12 <!--开启springmvc注解 --> 13 <context:annotation-config /> 14 15 <!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean --> 16 <context:component-scan base-package="com.code.daily.*.*.controller"/> 17 18 19 <!-- <import resource="classpath:spring/spring-tx.xml" /> --> 20 </beans>
4.spring-mvc.xml的配置(主要是对注解的开启,需要扫描注解的拦截操作)里面的几个标签大家可以直接百度上搜索,就会有介绍其作用。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" 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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <context:annotation-config /> <mvc:annotation-driven/> <mvc:default-servlet-handler /> <context:component-scan base-package="com.code.daily.*.*.controller"/> <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
5.Contorller的代码
1 package com.code.daily.service.tester.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.RequestMethod; 6 import org.springframework.web.bind.annotation.ResponseBody; 7 import org.springframework.web.servlet.ModelAndView; 8 9 @Controller 10 @RequestMapping("/test") 11 public class FistTesterControllet { 12 @RequestMapping(value = "/fistTest",method = RequestMethod.GET) 13 14 public @ResponseBody ModelAndView fistTester() { 15 ModelAndView mv = new ModelAndView(); 16 mv.addObject("message","message"); 17 mv.setViewName("Index"); 18 return mv; 19 } 20 }
6.jsp页面,头部标签导入了JSTL的标签库
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!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>FIST PAGE !!!</title> </head> <body> ${message}, Fist page !!! </body> </html>
7.项目结构
8.访问路径的映射 web.xml(daily-collect)+Controller(/test)+(/fistTest)+.do
http://localhost:8089/daily-collect/test/fistTest.do
9.常见性问题
如果你已经检查过项目中,在web.xml配置了此监听器,并可以找到此jar包,但仍报次错误,那么这个可能就是,MAVEN在部署的时候并没有引用到项目中去
解决方案:右键此工程选择properties
重新启动测试,可能还会遇到一些其他的问题,大家可以百度尝试搜索解决,或者把问题写在下面,有时间会回复解答
标签:
原文地址:http://www.cnblogs.com/deppon/p/5750136.html