您的位置:首页 > 编程语言 > Java开发

SpringMVC基础学习(二)—开发Handler

2016-08-23 22:32 351 查看

一、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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: