zoukankan      html  css  js  c++  java
  • springMVC2 1入门程序

    1入门程序
    1.1需求
    实现商品列表查询
    1.2需要的jar包
    使用spring3.2.0(带springwebmvc模块)

    1.1前端控制器
    在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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>springfirst1110</display-name>
      <!-- 前端控制器 -->
      <servlet>
          <servlet-name>springmvc</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <!-- 加载springmvc配置 -->
          <init-param>
              <param-name>contextConfigLocation</param-name>
              <!-- 配置文件的地址
                  如果不配置contextConfigLocation,
                  默认查找的配置文件名称classpath下的:servlet名称+"-serlvet.xml"即:springmvc-serlvet.xml
               -->
              <param-value>classpath:springmvc.xml</param-value>
          </init-param>
    
      </servlet>
      <servlet-mapping>
          <servlet-name>springmvc</servlet-name>
          <!-- 
          可以配置/ ,此工程 所有请求全部由springmvc解析,此种方式可以实现 RESTful方式,需要特殊处理对静态文件的解析不能由springmvc解析.
          可以配置*.do或*.action,所有请求的url扩展名为.do或.action由springmvc解析,此种方法常用.
          不可以/*,如果配置/*,返回jsp也由springmvc解析,这是不对的。
           -->
          <url-pattern>*.action</url-pattern>
      </servlet-mapping>
      
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    1.2Springmvc.xml类似于spring的配置文件
    在springmvc.xml中配置springmvc架构三大组件(处理器映射器HandlerMapping
    、适配器HandlerAdapter
    、视图解析器ViewResolver
    )
    1.3工程结构

    1.1 处理器映射器
    在springmvc.xml中配置:
    BeanNameUrlHandlerMapping: 根据请求url(XXXX.action)匹配spring容器bean的 name
    找到对应的bean(程序编写的Handler)
    <!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 -->
        <bean
            class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    所有处理器映射器都实现HandlerMapping接口。
    1.2处理器适配器
    在springmvc.xml配置:
    <bean        class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 
    所有的适配器都是实现了HandlerAdapter接口。
    程序编写Handler(类似于action)根据适配器的要求编写。
    SimpleControllerHandlerAdapter适配器要求:
    通过supports方法知道Handler必须要实现哪个接口:

    1.1Handler编写
    需要实现Controller接口:

    ItemController1:
    public abstract class ItemController1 implements Controller {
    
        @Override
        public ModelAndView handleRequest(HttpServletRequest request,
                HttpServletResponse response) throws Exception {
    
            // 使用静态数据将商品信息列表显示在jsp页面
            // 商品列表
            List<Items> itemsList = new ArrayList<Items>();
            Items items_1 = new Items();
            items_1.setName("联想笔记本");
            items_1.setPrice(6000f);
            items_1.setCreatetime(new Date());
            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 = new ModelAndView();
            //将数据填充到request
    //        request.setAttribute("itemsList", itemsList);
            modelAndView.addObject("itemsList", itemsList);
            //指定转发的jsp页面
            modelAndView.setViewName("/WEB-INF/jsp/itemsList.jsp");
            return modelAndView;
        }
    }
    1.1配置Handler
    在springmvc.xml配置Handler由spring管理Handler。
    <!-- 配置Handler 由于使用了BeanNameUrlHandlerMapping处理映射器,name配置为url -->
        <bean id="itemController1" name="/itemList.action"
            class="cn.itcast.springmvc.first.ItemController1" />
    1.2配置视图解析器
    配置视图解析,能够解析jsp视图:
    <!-- 配置视图解析器 ,要求将jstl的包加到classpath -->
        <!-- ViewResolver -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
    1.3工程部署
    访问:http://localhost:8080/springfrist1110/itemList.action

    页面:
    <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>
  • 相关阅读:
    linux命令学习笔记:cut详解
    浏览器url传参中文时得到null的解决方法
    jQuery给控件赋值....
    Myeclipse 错误An internal error has occurred 解决办法
    浏览器发送URL的编码特性
    DEBUG -- CLOSE BY CLIENT STACK TRACE问题的两种解决方案,整理自网络
    解决Maven中OutOfMemory错误
    java中的URLEncoder和URLDecoder类;中文在地址栏中的处理
    关于CLOSE BY CLIENT STACK TRACE
    Hibernate复合主键映射
  • 原文地址:https://www.cnblogs.com/yaowen/p/5204925.html
Copyright © 2011-2022 走看看