Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 

前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构

1需求

以案例作为驱动。

SpringMVC和MyBatis使用一个案例(商品订单管理)。

功能需求:商品列表查询

2环境准备

数据库环境:mysql5.6

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)_第1张图片

java环境:

jdk1.7

MyEclipse2014

SpringMVC版本:spring3.2

需要spring3.2所有jar(一定要包括spring-webmvc-3.2.0.RELEASE.jar)

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)_第2张图片

新建一个web项目,将所需jar包拷贝至lib下。

3配置前端控制器

在web.xml中配置前端控制器。

xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVCdisplay-name>
  <welcome-file-list>
    <welcome-file>index.jspwelcome-file>
  welcome-file-list>
  
  
  <servlet>
      <servlet-name>springmvcservlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
      
      <init-param>
          <param-name>contextConfigLocationparam-name>
          <param-value>classpath:springmvc.xmlparam-value>
      init-param>
      
      <load-on-startup>1load-on-startup>
  servlet>
  
  <servlet-mapping>
      <servlet-name>springmvcservlet-name>
      
      <url-pattern>*.actionurl-pattern>
  servlet-mapping>
  
web-app>

DispathcerServlet作为springmvc的中央调度器存在,DispatcherServlet创建时会默认从DispatcherServlet.properties文件加载springmvc所用的各个组件,如果在springmvc.xml中配置了组件则以springmvc.xml中配置的为准,DispatcherServlet的存在降低了springmvc各各组件之间的耦合度。

4配置处理器适配器

在classpath下的springmvc.xml中配置处理器适配器。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

    
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

beans>

通过查看源码:

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)_第3张图片

此适配器能执行实现Controller接口的Handler。

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)_第4张图片

5开发Handler

需要实现Controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器执行。

public class ItemsController1 implements Controller{

    @Override
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        //调用service查找数据库,查询商品列表,这里使用静态数据模拟
        List itemsList=new ArrayList();
        Items items_1=new Items();
        items_1.setName("联想笔记本");
        items_1.setPrice(6000f);
        items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
        
        Items items_2 = new Items();
        items_2.setName("苹果手机");
        items_2.setPrice(5000f);
        items_2.setDetail("iphone6苹果手机!");
        
        itemsList.add(items_1);
        itemsList.add(items_2);
        
        //返回ModelAndView
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("itemsList", itemsList);
        modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
        return modelAndView;
    }

}

6视图编写

 创建/WEB-INF/jsp/order/itemsList.jsp视图页面。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
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>查询商品列表title>
head>
<body> 
<form action="${pageContext.request.contextPath }/item/queryItem.action" method="post">
查询条件:
<table width="100%" border=1>
<tr>
<td><input type="submit" value="查询"/>td>
tr>
table>
商品列表:
<table width="100%" border=1>
<tr>
    <td>商品名称td>
    <td>商品价格td>
    <td>生产日期td>
    <td>商品描述td>
    <td>操作td>
tr>
<c:forEach items="${itemsList }" var="item">
<tr>
    <td>${item.name }td>
    <td>${item.price }td>
    <td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>td>
    <td>${item.detail }td>
    
    <td><a href="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改a>td>

tr>
c:forEach>

table>
form>
body>

html>

7配置Handler

在spring容器中(springmvc.xml)加载编写的Handler。

   
    <bean name="/queryItems.action" class="joanna.yan.ssm.controller.ItemsController1"/>

8配置处理器映射器

在classpath下的springmvc.xml中配置处理器映射器。

    
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

9配置视图解析器

需要在springmvc.xml中配置解析jsp的视图解析器。

    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)_第5张图片

10项目部署调试

将项目部署至Tomcat,访问http://localhost:8080/SpringMVC/queryItems.action

效果图:

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)_第6张图片

从目前上面的代码来看,springmvc中一个类就一个方法,而struts中一个类可以写多个方法,很不方便。早期确实是这么干的,但是后来SpringMVC提倡用注解开发。

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(二)

如果此文对您有帮助,微信打赏我一下吧~ 

Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)_第7张图片

 

你可能感兴趣的:(Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一))