SpringMVC 加载的配置文件中各个组件的含义和配置的顺序 day3

这里的顺序是不是按照实际运行流程走的


第一步:配置HandlerAdapter

<!-- 处理器适配器 所有处理器适配器都实现 HandlerAdapter接口 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

这里的class类实现了HandlerAdapter接口,这个接口里面能够处理的bean对象是实现Controller接口的Handler

第二步:开发Handler

public class ItemsController1 implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		//调用service查找 数据库,查询商品列表,也可以使用静态数据模拟
        //handler 处理完返回的结果是ModelAndView类型的,其中可以使用
        //modelAndView.addObject("itemsList", itemsList);来向modelandview对象添加数据模型
        //然后在jsp页面可以根据具体key来获取模型中的数据
        //例如:<c:forEach items="${itemsList }" var="item">
        //也可以在这里指定视图jsp,这个视图最后通过dispatcherservlet渲染之后会返回给用户
		return modelAndView;
	}
}

第三步:配置Handler

<!-- 配置Handler -->
<bean id="itemsController1" name="/queryItems.action" 
 class="cn.itcast.ssm.controller.ItemsController1" />

这里的class是用来处理该springmvc前端控制器的url-pattern匹配的url请求的控制器,是一个java的类

第四步:配置HandlerMapping

<!-- 处理器映射器 
	将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url) 
	所有的映射器都实现 HandlerMapping接口。
-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

这里的class加载的包是我们导入的一个jar包中的类,这个类实现了HaddlerMapping接口,而这个类的作用就是通过beanname来找到指定的handler来处理url请求

第五步:编写ViewResolver

<!-- 视图解析器
	解析jsp解析,默认使用jstl标签,classpath下的得有jstl的包
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>

dispatcherservlet接收到modelandview之后解析view返回jsp页面给用户

第六步:编写视图View

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询商品列表</title>
</head>
<body> 
<form action="${pageContext.request.contextPath }/item/queryItem.action" method="post">
查询条件:
<table width="100%" border=1>
<tr>
<td><input type="submit" value="查询"/></td>
</tr>
</table>
商品列表:
<table width="100%" border=1>
<tr>
	<td>商品名称</td>
	<td>商品价格</td>
	<td>生产日期</td>
	<td>商品描述</td>
	<td>操作</td>
</tr>
<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 }/item/editItem.action?id=${item.id}">修改</a></td>

</tr>
</c:forEach>

</table>
</form>
</body>

</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值