Spring MVC是spring的一个子模块,用于方便web应用的开发。以下是如何配置和使用spring mvc的一个简单示例。包括用xml文件配置映射以及使用spring的注解。由于采用maven管理项目的依赖,所以无需自己手动下载各种jar包,在pom文件中添加依赖的坐标,maven会自动下载。
使用xml配置spring的控制器映射实例:
整个项目结构如下图所示:
pom文件中配置如下依赖:
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
<!-- Spring MVC framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>2.5.6</version>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
整个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>Spring Web MVC Application</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
所有以.htm结尾的请求都由spring的核心控制器DispatcherServlet进行处理,该处理器会找到具体的控制器进行请求处理。
mvc-dispatcher-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
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-2.5.xsd">
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean name="/welcome.htm"
class="com.mkyong.common.controller.HelloWorldController" />
</beans>
控制器代码:
package com.mkyong.common.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class HelloWorldController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("HelloWorldPage"); //加上配置文件中的prefix和suffix就是完整的URL
model.addObject("msg", "hello world"); //设置模型的值,在视图中可以访问
return model;
}
}
spring mvc注解版
项目目录结构和上一个实例相同。
只是控制器是以注解形式的java文件。
package com.mkyong.common.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/welcome2008")
public class HelloWorldController{
@RequestMapping(method = RequestMethod.GET)
public ModelAndView helloWorld(){
ModelAndView model = new ModelAndView("HelloWorldPage");
model.addObject("msg", "hello world with spring annotation");
return model;
}
}
spring的配置文件也有所不同。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="com.mkyong.common.controller" /> <!-- make annocation works -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
使用maven的命令 mvn jetty:run启动jetty容器后输入
http://localhost:8080/springMVCAnno/welcome2008.htm即可访问相应的jsp文件。即pages目录下的HelloWorldPage.jsp文件。
注意welcome2008是和控制器@RequestMapping("/welcome2008")一致的,如果不一致,会出现找不到错误。
项目的所有源码见附件。
- 大小: 15.4 KB
分享到:
相关推荐
Spring MVC 实例
spring mvc 实例有数据库,jar包,代码之间还有详细的注解,特别适合初学者学习,之间导入myeclipse工程中就可以用.希望对初学者学习spring mvc框架有帮助.
Spring MVC 实例 - Hello World,spring mvc 入门Spring MVC 实例 - Hello World,spring mvc 入门
学习Spring MVC,关于注解的Spring MVC,简单例子,关于控制器的Spring MVC,学习Spring,简单Spring MVC实例
Spring Mvc实例 主要实现利用spring注解,完成前后台交互,简单的视图控制和数据操作。
这是一个Spring MVC实例 使用MVC注解配置
运用extjs2和spring mvc的项目,非常具有学习价值,里面有一套非常好用的jdbc技术.
Spring mvc 实例下载可运行
Spring mvc 实例
基于注解的spring mvc,dao 层注解:@Repository("userDao"), entity层注解:@Entity,service层注解:@Service("userService"), action层注解:@Controller("userController") @RequestMapping("/user.do")
Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...
Spring mvc、 Spring、 Spring jdbc 整合实例源码
首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求交给一个名为 helloController ...
这是一个自己编辑的实例使用与初学者。spring mvc 这个是一个标准的。还有一个简单的方法。需要给我留下邮箱
(附带详细文档讲解) 开发环境:Apache Tomcat + MyEclipse6 + spring2.5 实现功能:用户登录,校验用户名和密码,如果正确返回成功页面上显示登陆信息
将压缩文件解压后,将脚本在数据库执行后,启动eclipse,切换工作空间为解压的目录,就可以使用了
首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求交给一个名为 helloController ...
完整的Spring+MVC+AngularJS例子 maven项目。