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>

 

结果:

 

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>
时间: 2024-07-28 16:58:48

SpringMVC基础学习(二)—开发Handler的相关文章

Mybatis基础学习(二)&mdash;开发Dao方式

一.原始Dao开发方式 UserDao.java public interface UserDao{ public User findUserByID(Serializable id); public List<User> findUsersByName(String name); } UserDaoImpl.java public class UserDaoImpl implements UserDao{ //SqlSessionFactory是单例存在,不应该在具体实例中创建,需要外部依赖

SpringMVC基础学习(二)&mdash;模型数据

一.处理模型数据 1.处理模型数据的途径      SpringMVC提供以下几种途径输出模型数据:      (1)ModelAndView: 处理方法返回值类型为ModelAndView,方法体即可通过该对象添加模型数据.      (2)Map及Model: 入参为Map和Model,处理方法返回时,Map中的数据会自动添加到模型中.      (3)@SessionAttributes: 将模型中的某个属性暂存到HttpSession中,以便多个轻轻能共享这个属性.      (4)@M

零基础学习IOS开发(二)- 使用cocos2d-x3.0 执行Hello world

关于开发框架,依据网上检索来的信息,感觉cocos2d-x的ios游戏开发框架非常不错,并且有非常强的可移植性,因此打算尝试一下. 截止写下此文章,最新的cocos2d-x的版本号为v3.0稳定版(几天前刚刚公布),下载地址为:http://www.cocos2d-x.org/filedown/cocos2d-x-3.0-cn 安装方式例如以下: 1.解压程序压缩包(所在路径不能有中文哦,由于是python,你懂的...) 2.sudo python setup.py 安装cocos2d-x,依

【零基础学习iOS开发】【01-前言】01-开篇

本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂.若遇到不明白的地方或者对此文有异议,望及时评论. 回到顶部 一.什么是iOS 要想学习iOS开发,首先要搞清楚什么是iOS.iOS其实是一款操作系统,就像平时我们在电脑上用的

【零基础学习iOS开发】【转载】

原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂.若遇到不明白的地方或者对此文有异议,望及时

李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂.若遇到不明白的地方或者对此文有异议,望及时评论. 一.什么是iOS 要想学习iOS开发,首先要搞清楚什么是iOS.iOS其实是一款操作系统,就像平时我们在电脑上用的XP.Win7,都是操作系统. 那什么是操作系统呢?操作系统其实是一种软件,是直接运行在硬件(电脑.手机等)上的最基本的系统软件,任何

puppet基础学习(二)

puppet基础学习(二) 六.ResourceOrdering(资源定序) 使用变化参数before , require , notify , subscribe catalog是对一个给定的系统的所有资源及关系的编译,在编译catalog时,除非我们指定资源的执行顺序,不然puppet是以其自己的顺序管理,大多数时候puppet指定适当的方式,例如puppet管理用户gigabyte应该存在和文件夹/home/gigabyte/bin应该存在并属于用户gigabyte时,puppet会自动指

[原]零基础学习SDL开发之移植SDL2.0到Android

在[原]SDL开发教程我们知道了如何在pc下使用SDL进行开发,在android上面是否一样可以使用呢?答案是肯定的. 下面我们进行移植SDL到Android,这里都是基于SDL最新版进行移植的,在Eclipse中编译. 开发环境:Ubuntu 14.04 64位,Eclipse + CDT + ADT,NDK 一.到官网下载http://www.libsdl.org/hg.php 下载2.0的源码也可以通过hg来clone最新的源码 hg clone http://hg.libsdl.org/

SpringMVC入门学习(二)

SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. model.addAttribute()的使用 model接口的源代码: 由图可知,在addAttribute()中有两种入参方式,一种是指明名字var1,一种是不指明名字var1.在不指明名字中,会通过相近的去寻找. 在addAttribute()中,我们可以放任何对象: 首先先导入jsp标签maven