重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.( 二 )


Springmvc开发handler有多种方式,我们只讲解三种:实现HttpRequestHandler接口、实现Controller接口、使用注解开发(掌握)
实现HttpRequestHandler接口

重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
1 package com.wuhao.springmvc.controller; 23 import JAVA.io.IOException; 4 import java.util.ArrayList; 5 import java.util.List; 67 import javax.servlet.ServletException; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse;10 11 import org.springframework.web.HttpRequestHandler;12 13 import com.wuhao.springmvc.domain.Items;14 15 public class ItemController implements HttpRequestHandler {16 17@Override18public void handleRequest(HttpServletRequest request, HttpServletResponse response)19throws ServletException, IOException {20//获取商品列表(用静态数据模拟)21List<Items> itemsList = new ArrayList<Items>();2223Items items_1 = new Items();24items_1.setName("联想笔记本 HttpRequestHandler");25items_1.setPrice(6000f);26items_1.setDetail("ThinkPad T430 联想笔记本电脑!");27 28Items items_2 = new Items();29items_2.setName("苹果手机");30items_2.setPrice(5000f);31items_2.setDetail("iphone6苹果手机!");32 33itemsList.add(items_1);34itemsList.add(items_2);35 36//把商品数据放到request域中37request.setAttribute("itemsList", itemsList);38//指定视图39request.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(request, response);40 41}42 43 }springmvc.xml中配置该处理器
通过localhost:8080/项目名/queryItems01.do 就能够访问到DispatcherSerlvet,该servlet就会帮我们找到你对应的处理器(依据就是通过下面的这行配置,queryItems01对应了一个处理器的class,也就能够找到)
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
1<!-- 配置实现HttpRequestHander接口的处理器 -->2<bean name="/queryItems01.do" class="com.wuhao.springmvc.controller.ItemController"></bean>实现Controller接口
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
1 package com.wuhao.springmvc.controller; 23 import java.util.ArrayList; 4 import java.util.List; 56 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 89 import org.springframework.web.servlet.ModelAndView;10 import org.springframework.web.servlet.mvc.Controller;11 12 import com.wuhao.springmvc.domain.Items;13 14 public class ItemController02 implements Controller {15 16@Override17public ModelAndView handleRequest(HttpServletRequest request,18HttpServletResponse response) throws Exception {19//获取商品列表(用静态数据模拟)20List<Items> itemsList = new ArrayList<Items>();2122Items items_1 = new Items();23items_1.setName("联想笔记本 Controller");24items_1.setPrice(6000f);25items_1.setDetail("ThinkPad T430 联想笔记本电脑!");26 27Items items_2 = new Items();28items_2.setName("苹果手机");29items_2.setPrice(5000f);30items_2.setDetail("iphone6苹果手机!");31 32itemsList.add(items_1);33itemsList.add(items_2);3435//实现Controller接口的话,就必须使用MoldeAndView对象来将数据装载到对应的jsp视图上,然后返回该对象即可36//所以需要两步,将数据给该对象,将指定的视图在交给该对象,最后返回该对象即可 。37ModelAndView mv = new ModelAndView();38//类似于request.setAttribute("itemsList", itemsList);39mv.addObject("itemsList", itemsList);4041//指定视图42mv.setViewName("/WEB-INF/jsp/items/itemsList.jsp");4344return mv;45 46}47 48 }配置该handler类
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
<!-- 配置实现Controller接口的处理器 --><bean name="/queryItems02.do" class="com.wuhao.springmvc.controller.ItemController02"></bean>使用注解开发
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
注解的配置,就是配置一个扫描器,扫描使用了注解的地方
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
<!-- 使用注解的handle,则需要配置组件扫描器,加载handlerbase-package:指定要扫描的包--><context:component-scanbase-package="com.wuhao.springmvc.controller"></context:component-scan>2.9、开发jsp在WEB-INF/jsp/items/下创建jsp:itemsList.jsp
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 


推荐阅读