创建maven项目,使用maven-archetype-webapp

创建完成后首先是在pom.xml里增加maven的依赖

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>

接着是在web.xml的跟节点增加DispatcherServlet的配置

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

指明了由org.springframework.web.servlet.DispatcherServlet类来处理所有的URL(<url-pattern>/</url-pattern>)请求.

然后,在WEB-INF目录下,新建一个springmvc-servlet.xml文件,因为我们在web.xml中定义了一个名为springmvc的servlet,默认的springmvc配置文件名就是/WEB-INF/{servletname}-servlet.xml。下面是springmvc-servlet.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="springmvc2.controllers" />
<mvc:annotation-driven />
<mvc:resources location="/WEB-INF/static/" mapping="/static/**" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>

<context:component-scan base-package="springmvc2.controllers" />告诉spring,在启动时扫描springmvc2.controllers包,我们将会在这个包内定义我们的Controller类。还指明了通过org.springframework.web.servlet.view.InternalResourceViewResolver策略来寻找View。前缀和后缀的意思是,当我们的Action方法返回”index”时,InternalResourceViewResolver策略会将index拼接上前缀和后缀,也就是/WEB-INF/pages/index.jsp,这就是我们要找的视图文件地址。

接下来,在main目录下新建一个名叫Java的文件夹,这个是为了符合maven的目录结构。

然后,在java目录下新建一个类,类名为HomeController,包名为springmvc2.controllers。下面是HomeController的代码

package springmvc2.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping(value="/home")
public class HomeController {
@RequestMapping(value = "/index")
public String Index(Model model)
{
model.addAttribute("msg", "hello,springmvc");
return "index";
}
}

如果你的包名跟本文的不一样,你要在springmvc的配置文件中也作出相应的修改。 
在这个类中,我们通过@Controller将其指定为一个Controller,通过@RequestMapping来告诉springmvc它所响应的URL格式。我们通过model.addAttribute("msg", "hello,springmvc");,将一个字符串传递给视图,然后返回视图的名字。

最后,该创建视图文件了。在WEB-INF目录下新建一个叫pages的文件夹,在pages中新建一个名为index.jsp的文件。内容如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${msg}
</body>
</html>

我们通过${msg}来显示出从Action方法中传递过来的数据,${}这种语法叫EL表达式。 
代码编写完成。用maven编译打包,然后发布到容器中,通过访问localhost:8080/springmvc2/home/index,就会显示出hello,springmvc的文字。

如果运行结果不是我们希望的hello,springmvc,而是${msg}。 
导致这个结果的原因是JSP的版本问题,有可能你的项目目前的默认版本是1.2,这个版本默认是不开启EL表达式的。

解决办法:

修改web.xml中的web-app节点,加上下面的属性

 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
......
</web-app>

  非原创,为方便以后使用转载,来源:springmvc 开始

java使用maven创建springmvc web项目的更多相关文章

  1. 【Maven】Eclipse 使用Maven创建SpringMVC Web项目

    创建环境 系统:win 10 软件:eclipse,maven. 创建步骤 创建一个Maven Web项目,可以参照:[Maven]Eclipse 使用Maven创建Java Web项目 添加spri ...

  2. 在eclipse中,用maven创建一个web项目工程

    1.在eclipse中用maven创建项目,右键new>>Maven Project 2.点击next继续 3.点击next继续,选择maven-archetype-webapp, 4.点 ...

  3. [转]在eclipse中,用maven创建一个web项目工程

    1.在eclipse中用maven创建项目,右键new>>Maven Project 2.点击next继续 3.点击next继续,选择maven-archetype-webapp, 4.点 ...

  4. 如何在IntelJ下用Maven创建一个Web项目

    相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了.但是之后接触了一些使用了Maven进行包管理的项目,我们就不得不学一学如何用Maven做包管理. 在网 ...

  5. maven安装配置及使用maven创建一个web项目

    今天开始学习使用maven,现在把学习过程中的资料整理在这边. 第一部分.maven安装和配置. http://jingyan.baidu.com/article/295430f136e8e00c7e ...

  6. 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  7. 用maven创建一个web项目

    下面所使用的Eclipse开发工具为Eclipse Java EE IDE 版本. 1.创建一个maven项目,如图所示: 选择“maven-archetype-webapp”,如图所示: 后面几步按 ...

  8. Maven创建一个Web项目

    我们可以通过命令行或者直接使用Eclipse创建一个maven webapp项目:通过命令行创建在命令行中输入如下格式的命令将会创建一个新的maven webapp项目:mvn archetype:g ...

  9. springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试

    包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=" ...

随机推荐

  1. Entity Framework执行Sql语句返回DataTable

    Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作.如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的 ...

  2. 【笨木头Lua专栏】基础补充04:迭代器初探

    今天学习的内容还蛮有意思的,让我兴奋了一下~ 笨木头花心贡献,哈?花心?不,是用心~ 转载请注明,原文地址: http://www.benmutou.com/archives/1714 文章来源:笨木 ...

  3. 从头开始学JavaScript (十三)——Date类型

    说明:UTC:国际协调日期 GMT:格林尼治标准时间 一.date类型的创建 使用new操作符和Date()构造函数 var now=new Date(): 传入参数:Date.parse()和Dat ...

  4. java基金会 之 HashMap统计csvWord文档

    一:知识的补充( 这个HashMap Map 和 c++的Map还是有非常大的区别,惊人的差异大的人,当然,两者的作用是相同的,但函数名出一个非常大的.即使iterator的差是非常大的 ) (1)H ...

  5. Hadoop2.2.0--Hadoop Federation、Automatic HA、Yarn完全分布式集群结构

    Hadoop有很多的上场时间,与系统上线.手头的事情略少.So,抓紧时间去通过一遍Hadoop2在下面Hadoop联盟(Federation).Hadoop2可用性(HA)及Yarn的全然分布式配置. ...

  6. ajax form表单提交 input file中的文件

    ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...

  7. C#-面向对象的多态思想 ---ShinePans

    总结: 多态是面向对象的核心.---------能够理解为一个方法,多种实现, 在这里能够用虚方法,抽象类,接口能够实现多态 1.首先利用接口来实现多态: 接口相当于"功能,"接口 ...

  8. Equals 和==

    class Person     {         private string name;         public string Name         {             get ...

  9. java中string和int互相转化

    1 怎样将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...

  10. C# 调用Webservice并传递序列化对象

    原文:C# 调用Webservice并传递序列化对象 C#动态调用WebService注意要点 1.动态调用的url后面注意一定要加上?WSDL   例如:string _url = "ht ...