一、Handler开发

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

1.实现HttoRequestHandler接口

ItemsController1.java

/** Handler开发方式1: 实现HttpRequestHandler接口*/
public class ItemsController1 implements HttpRequestHandler{@Overridepublic 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>

结果:

2.实现Controller接口

/** Handler开发方式2: 实现Controller接口*/
public class ItemsController2 implements Controller{@Overridepublic 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方法返回值解析作为实际的物理视图 --><beanclass="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.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 配置自动扫描的包 --><context:component-scan base-package="com.kiwi" /><!-- 配置视图解析器: 如何把handler方法返回值解析作为实际的物理视图 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp" /><property name="suffix" value=".jsp" /></bean></beans>

转载于:https://www.cnblogs.com/yangang2013/p/5801079.html

SpringMVC基础学习(二)—开发Handler相关推荐

  1. SpringMVC基础学习之Controller的两种实现方式和RequstMapping注解的使用

    前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个SpringM ...

  2. SpringMVC基础学习之Restful风格的简单使用

    前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个SpringM ...

  3. python零基础实例-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2864浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

  4. 列表怎么有限的初始化为零_《零基础学习Android开发》第五课 类与面向对象编程1-1...

    视频:<零基础学习Android开发>第五课 类与面向对象编程1-1 类的定义.成员变量.构造方法.成员方法 一.从数据与逻辑相互关系审视代码 通过前面的课程,我们不断接触Java语言的知 ...

  5. python入门经典100题-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2854浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

  6. 零基础学习MSP430F552LP开发板,学习前期准备,Code Composer Studio(CCS)软件的安装

    零基础学习MSP430F552LP开发板 一.前言 零基础学习MSP430F552LP开发板,为电子设计竞赛做准备以及学好这一款芯片. 在选择比赛题目时,发现有的题目时规定使用ti的芯片作为控制MCU ...

  7. python pyramid基础学习二

    python pyramid基础学习二 1.前言 前面我们使用了基础命令创建pyramid项目,并运行了Hello word,万事开头难,我们知道了开发pyramid项目需要一个env文件夹,里面包 ...

  8. 随笔分类 - 零基础学习iOS开发

    随笔分类 - 零基础学习iOS开发 不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍 ...

  9. 零基础学python需要多久-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

最新文章

  1. 微信小程序云开发,使用阿里云短信服务,搜索员工生日定期发送短信。
  2. 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
  3. HDU-2062 Subset sequence 递推
  4. jQuery API 3.1.0 速查表-打印版
  5. 设置文字不能被选中复制
  6. 时间:2014年3月28日15:51:27框架改进 增加日志功能log类
  7. android禁止下拉状态栏
  8. GoogleNet家族
  9. Demo源码放送:打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
  10. 妙味课堂原创JavaScript视频教程基础+提高+项目
  11. vc++键盘钩子和鼠标钩子
  12. win10计算器_好用的Win10系统计算器,终于可以在移动端设备上面来用了
  13. 大华海康萤石云摄像头Http接口云台控制开发
  14. Cannot negotiate authentication mechanism svn: Unable to connect to a repository at URL 'svn://gite
  15. ADO的RECORDSET的RECORDCOUNT属性总是为-1
  16. 浅谈网站PR值 如何提高PR值
  17. 使用Python进行Android自动化测试
  18. Android 获取彩信文本内容及 发送时间 发送人
  19. jenkins + git+maven做持续集成
  20. Java 获取当前服务器公网IP

热门文章

  1. html 图片 把绝对路径改为相对路径,html中想把图片绝对路径 改成相对路径怎么操作?...
  2. 在Windows平台下载及安装 TensorFlow
  3. 笔记︱精准营销解决方案以及营销组合评估
  4. TextRank算法
  5. [linux] redhat 7 iptables 配置
  6. [操作系统] 线程和进程的简单解释
  7. MongoDB学习:关闭mongod方式
  8. 23种设计模式(3):抽象工厂模式
  9. 《Java编程思想》学习笔记(一)——再度理解OOP
  10. 技术并不来自通宵^_^