创建maven项目,使用maven-archetype-webapp
创建完成后首先是在pom.xml里增加maven的依赖
org.springframework
spring-webmvc
4.0.5.RELEASE
org.springframework
spring-core
4.0.5.RELEASE
org.springframework
spring-beans
4.0.5.RELEASE
org.springframework
spring-context
4.0.5.RELEASE
org.springframework
spring-web
4.0.5.RELEASE
javax.servlet
javax.servlet-api
3.1.0
provided
接着是在web.xml的跟节点增加DispatcherServlet的配置
springmvc
org.springframework.web.servlet.DispatcherServlet
1
springmvc
/
指明了由org.springframework.web.servlet.DispatcherServlet类来处理所有的URL(/)请求.
然后,在WEB-INF目录下,新建一个springmvc-servlet.xml文件,因为我们在web.xml中定义了一个名为springmvc的servlet,默认的springmvc配置文件名就是/WEB-INF/{servletname}-servlet.xml。下面是springmvc-servlet.xml的内容
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
告诉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的代码
packagespringmvc2.controllers;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(value="/home")public classHomeController {
@RequestMapping(value= "/index")publicString 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的文件。内容如下:
Insert title here我们通过${msg}来显示出从Action方法中传递过来的数据,${}这种语法叫EL表达式。
代码编写完成。用maven编译打包,然后发布到容器中,通过访问localhost:8080/springmvc2/home/index,就会显示出hello,springmvc的文字。
如果运行结果不是我们希望的hello,springmvc,而是${msg}。
导致这个结果的原因是JSP的版本问题,有可能你的项目目前的默认版本是1.2,这个版本默认是不开启EL表达式的。
解决办法:
修改web.xml中的web-app节点,加上下面的属性
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1">......
非原创,为方便以后使用转载,来源:springmvc 开始