spring mvc+spring+mybatis+maven整合篇(二)

   在spring mvc+spring+mybatis+maven整合篇(一)中,我们已经讲解到使用SpringJUnit4ClassRunner+Junit测试mybatis+spring的整合效果,今天我们将继续解决如何在spring+mybatis整合的基础上整合spring mvc。

   首先我们需要在web.xml中配置spring mvc的核心过滤器DispatcherServlet,配置方式如下:

   <!-- spring mvc servlet -->
	<servlet>
		<description>spring mvc servlet</description>
		<servlet-name>springMvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<description>spring mvc 配置文件</description>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springMvc</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

        DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。

   然后我们需要做的是配置spring-mvc.xml,有两点需要重点说明:一个是配置自动扫描controller包下的所有类,使其认为spring mvc的控制器;另一个是配置对模型视图名称的解析,即在模型视图名称添加前后缀。

   配置自动扫描controller包下的所有类方式如下:

<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
	<context:component-scan base-package="sy.controller" />
   配置 对模型视图名称的解析,即在模型视图名称添加前后缀方式如下:

<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" />

      接着我们编写UserController类,用于处理对User业务的请求。

package sy.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import sy.model.User;
import sy.service.UserService;

@Controller
@RequestMapping("/userController")
public class UserController {

	private UserService userService;

	@RequestMapping("/showUser/{id}")
	public String showUser(@PathVariable String id, HttpServletRequest request) {
		User user = userService.getUserById(id);
		request.setAttribute("user", user);
		return "showUser";
	}

	public UserService getUserService() {
		return userService;
	}

	@Autowired
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
}

          这里的传参,我们使用的是resutful风格。如果使用传统方式访问,我们的访问地址为:http://localhost:8080/ssm/userController/showUser.do?id=1;如果使用restful方式访问,我们访问的地址为:http://localhost:8080/ssm/userController/showUser/1.do,我们通过特殊符号将请求和参数分离。

   到此关于spring mvc+spring+mybatis+maven整合的整合过程已经讲解完,最后奉献下ssm的源码下载地址:http://pan.baidu.com/s/13Ez74。如果我们需要导入下载的项目,则需要选择项目,右键run as-->maven install,然后Project-->clean,然后再次选择项目,右键run as-->maven install项目便可导入成功。

   如果项目的pom文件报missing ***.jar,在本地maven仓库删除对应jar的缓存,重新更新下载jar即可。  

你可能感兴趣的:(spring mvc+spring+mybatis+maven整合篇(二))