SpringMVC基础学习(二)—开发Handler
一、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相关推荐
- SpringMVC基础学习之Controller的两种实现方式和RequstMapping注解的使用
前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个SpringM ...
- SpringMVC基础学习之Restful风格的简单使用
前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个SpringM ...
- python零基础实例-零基础学习Python开发练习100题实例(1)
零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2864浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...
- 列表怎么有限的初始化为零_《零基础学习Android开发》第五课 类与面向对象编程1-1...
视频:<零基础学习Android开发>第五课 类与面向对象编程1-1 类的定义.成员变量.构造方法.成员方法 一.从数据与逻辑相互关系审视代码 通过前面的课程,我们不断接触Java语言的知 ...
- python入门经典100题-零基础学习Python开发练习100题实例(1)
零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2854浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...
- 零基础学习MSP430F552LP开发板,学习前期准备,Code Composer Studio(CCS)软件的安装
零基础学习MSP430F552LP开发板 一.前言 零基础学习MSP430F552LP开发板,为电子设计竞赛做准备以及学好这一款芯片. 在选择比赛题目时,发现有的题目时规定使用ti的芯片作为控制MCU ...
- python pyramid基础学习二
python pyramid基础学习二 1.前言 前面我们使用了基础命令创建pyramid项目,并运行了Hello word,万事开头难,我们知道了开发pyramid项目需要一个env文件夹,里面包 ...
- 随笔分类 - 零基础学习iOS开发
随笔分类 - 零基础学习iOS开发 不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍 ...
- 零基础学python需要多久-零基础学习Python开发需要多长时间?
原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...
最新文章
- 微信小程序云开发,使用阿里云短信服务,搜索员工生日定期发送短信。
- 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
- HDU-2062 Subset sequence 递推
- jQuery API 3.1.0 速查表-打印版
- 设置文字不能被选中复制
- 时间:2014年3月28日15:51:27框架改进 增加日志功能log类
- android禁止下拉状态栏
- GoogleNet家族
- Demo源码放送:打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
- 妙味课堂原创JavaScript视频教程基础+提高+项目
- vc++键盘钩子和鼠标钩子
- win10计算器_好用的Win10系统计算器,终于可以在移动端设备上面来用了
- 大华海康萤石云摄像头Http接口云台控制开发
- Cannot negotiate authentication mechanism svn: Unable to connect to a repository at URL 'svn://gite
- ADO的RECORDSET的RECORDCOUNT属性总是为-1
- 浅谈网站PR值 如何提高PR值
- 使用Python进行Android自动化测试
- Android 获取彩信文本内容及 发送时间 发送人
- jenkins + git+maven做持续集成
- Java 获取当前服务器公网IP
热门文章
- html 图片 把绝对路径改为相对路径,html中想把图片绝对路径 改成相对路径怎么操作?...
- 在Windows平台下载及安装 TensorFlow
- 笔记︱精准营销解决方案以及营销组合评估
- TextRank算法
- [linux] redhat 7 iptables 配置
- [操作系统] 线程和进程的简单解释
- MongoDB学习:关闭mongod方式
- 23种设计模式(3):抽象工厂模式
- 《Java编程思想》学习笔记(一)——再度理解OOP
- 技术并不来自通宵^_^