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>
posted @ 2016-08-23 22:32  ✈✈✈  阅读(459)  评论(0编辑  收藏  举报