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

【SSM-SpringMVC框架】非注解的处理器适配器和映射器

2016-04-14 10:50 477 查看

1.非注解的处理器映射器:

1.处理器映射器:(HandlerMapping)

处理器映射器负责根据request请求找到对应Handler处理器及Intercepter拦截器,将他们封装在HandlerExecutionChain对象中给前端控制器中返回。

1. org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping:

BeanNameUrlHandlerMapping处理器映射器,根据请求的url与spring容器中定义的bean的name进行匹配,从而从spring容器中找到bean的实例。

<!—beanName Url映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>


另一个处理器适配器:

2. org.springframework.web.servlet.handler.SimpleUrlHandlerMapping:

SimpleUrlHandlerMapping处理器适配器,他可以将url和处理器bean的id进行统一配置。

<!—简单url映射 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/items1.action">controller的bean id</prop>
<prop key="/items2.action">controller的bean id</prop>
</props>
</property>
</bean>


2.非注解的处理器适配器:

2.处理器适配器(HandlerAdapter):

HandlerAdapter会根据适配器接口对后端控制器进行包装(适配),包装后即可对处理器进行执行,通过扩展处理器适配器可执行多种类型的处理器。这里使用了适配器设计模式。

1.org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter:

简单的处理器适配器,所有实现了org.springframework.web.servlet.mvc.Controller接口的bean,都通过此适配器进行适配执行:

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />


2.org.springframework.web.HttpRequestHandlerAdapter:

HttpRequestHandlerAdapter,http请求处理器适配器,所有实现了org.springframework.web.HttpRequestHandler接口的bean,通过此适配器进行适配,执行。

<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>

handler开发:

public class ItemList2 implements HttpRequestHandler {

@Override
public void handleRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

// 商品列表
List<Items> itemsList = new ArrayList<Items>();

Items items_1 = new Items();
items_1.setName("联想笔记本");
items_1.setPrice(6000f);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!");

Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000f);
items_2.setDetail("iphone5  苹果手机!");

itemsList.add(items_1);
itemsList.add(items_2);

// 填充数据
request.setAttribute("itemsList", itemsList);

// 视图
request.getRequestDispatcher("/WEB-INF/jsp/order/itemsList.jsp").forward(request, response);

}

}
从上边里可以看出,此适配器的handlerRequest方法没有返回ModelAndView,可通过response修改响应内容,比如json,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: