zoukankan      html  css  js  c++  java
  • SpringMVC基础学习(二)—开发Handler

    一、Handler开发   

         Handler的开发方式在springmvc中有多种,下面我们主要讲解三种实现方式:实现Controller接口、实现HttpRequestHandler接口、使用注解

    1.实现HttoRequestHandler接口

    ItemsController1.java

    /*
     * Handler开发方式1: 实现HttpRequestHandler接口
     */
    public class ItemsController1 implements HttpRequestHandler{
    
    	@Override
    	public void handleRequest(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
    		//模拟查询商品列表数据
    		List<Items> list = new ArrayList<Items>();
    		list.add(new Items("笔记本",6000f,new Date(),"联想笔记本值得信赖!!!"));
    		list.add(new Items("手机",3000f,new Date(),"支持国产手机!!!"));
    		list.add(new Items("背包",1000f,new Date(),"登山旅行必备!!!"));
    		
    		//将商品放置到request域中
    		req.setAttribute("itemsList",list);
    		
    		//指定指定的视图
    		req.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(req,resp);
    	}
    }

    配置handler

         在springmvc.xml配置文件中配置。

    <!-- 配置实现HttpRequestHandler接口的处理器 -->
    <bean name="/queryItems.do" class="com.kiwi.controller.ItemsController1" />

    jsp页面

    <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 }/editItems.do?id=${item.id}">修改</a></td>
        
        </tr>
    </c:forEach>

    结果:

    image

    2.实现Controller接口

    /*
     * Handler开发方式2: 实现Controller接口
     */
    public class ItemsController2 implements Controller{
    
    	@Override
    	public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception{
    
    		ModelAndView mv = new ModelAndView();
    		// 模拟查询商品列表数据
    		List<Items> list = new ArrayList<Items>();
    		list.add(new Items("笔记本2",6000f,new Date(),"联想笔记本值得信赖!!!"));
    		list.add(new Items("手机2",3000f,new Date(),"支持国产手机!!!"));
    		list.add(new Items("背包2",1000f,new Date(),"登山旅行必备!!!"));
    		
    		mv.addObject("itemsList",list);
    		mv.setViewName("/items/itemsList");
    		
    		return mv;
    	}
    }

    配置handler

         在springmvc.xml配置文件中配置。

    <!-- 配置视图解析器: 如何把handler方法返回值解析作为实际的物理视图 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp" />
            <property name="suffix" value=".jsp" />
        </bean>
    
        <!-- 配置实现Controller接口的处理器 -->
        <bean name="/queryItems2.do" class="com.kiwi.controller.ItemsController2" />

    3.使用注解开发

    /*
     * Handler开发方式3: 使用注解开发
     */
    @Controller
    public class ItemsController3{
    	
    	@RequestMapping("/queryItems3")
    	public String showList(Model model){
    		
    		// 模拟查询商品列表数据
    		List<Items> list = new ArrayList<Items>();
    		list.add(new Items("笔记本3",6003f,new Date(),"联想笔记本值得信赖!!!"));
    		list.add(new Items("手机3",3003f,new Date(),"支持国产手机!!!"));
    		list.add(new Items("背包3",1003f,new Date(),"登山旅行必备!!!"));
    		
    		model.addAttribute("itemsList",list);
    		
    		return "/items/itemsList";
    	}
    
    }

    配置

    <?xml version="1.0" encoding="UTF-8"?>
    <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"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/context
                            http://www.springframework.org/schema/context/spring-context.xsd
                            http://www.springframework.org/schema/mvc
                            http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <!-- 配置自动扫描的包 -->
        <context:component-scan base-package="com.kiwi" />
    
        <!-- 配置视图解析器: 如何把handler方法返回值解析作为实际的物理视图 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp" />
            <property name="suffix" value=".jsp" />
        </bean>
    
    </beans>
  • 相关阅读:
    算法问题实战策略 JUMPGAME 记忆化搜索
    算法问题实战策略 TRIANGLEPATH 动态规划入门题
    poj 2785 4 Values whose Sum is 0
    poj 3276 Face The Right Way 递推
    acwing 883. 高斯消元解线性方程组
    acwing 861. 二分图的最大匹配 模板
    Leetcode 42 接雨水 双指针 空间换时间
    LeetCode 1290. 二进制链表转整数
    LeetCode 1291. 顺次数
    <挑战程序设计竞赛> poj 3320 Jessica's Reading Problem 双指针
  • 原文地址:https://www.cnblogs.com/yangang2013/p/5801079.html
Copyright © 2011-2022 走看看