SpringMVC - 非注解的处理器映射器和适配器

来源:互联网 发布:vb 按键精灵 编辑:程序博客网 时间:2024/04/19 20:45

一、非注解的处理器映射器

  • 提供的处理器有两个属性。一个是id属性,一个是name属性。分别对应两种不同的映射器。
<bean id = "itemsController2" name="/queryItems.action" class="club.lemos.ssm.controller.ItemsController1"/>
  • BeanNameUrlHandlerMapping
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
  • SimpleUrlHandlerMapping
<!-- 简单url映射 处理器映射器 --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">    <property name="mappings">        <props>            <prop key="/queryItems1.action">itemsController2</prop>            <prop key="/queryItems2.action">itemsController2</prop>        </props>    </property></bean>

结论:一个 Handler,可以有多个映射器,一个映射器也可以有多个url.
注意:所有的映射器都实现了HandlerMapping接口。

二、非注解的处理器适配器

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

要求编写的Handler实现Controller接口

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

要求编写的Handler 实现 HttpRequestHandler接口。
Handler的实现如下:

public class ItemsController2 implements HttpRequestHandler{    public void handleRequest(HttpServletRequest httpServletRequest,                              HttpServletResponse httpServletResponse) throws ServletException, IOException {        // 调用service 查找数据库,查询商品列表。这里使用静态数据模拟        List<Items> itemsList = new ArrayList<Items>();        Items items_1 = new Items();        items_1.setName("联想笔记本");        items_1.setPrice(6000f);        items_1.setDetail("ThinkpPad T430联想笔记本电脑!");        Items items_2 = new Items();        items_2.setName("苹果手机");        items_2.setPrice(5000f);        items_2.setDetail("iphone6 苹果手机!");        itemsList.add(items_1);        itemsList.add(items_2);        //设置模型数据        httpServletRequest.setAttribute("itemsList",itemsList);        //设置转发的视图        httpServletRequest.getRequestDispatcher("WEB-INF/jsp/items/itemsList.jsp")                .forward(httpServletRequest,httpServletResponse);//        使用此方法可以通过修改 response,设置响应数据格式,比如响应json数据//        httpServletResponse.setCharacterEncoding("utf-8");//        httpServletResponse.setContentType("application/json;charset=utf-8");//        httpServletResponse.getWriter().write("json串");    }}

三、 DispatcherServlet.properties

DispatcherServlet.properties

前端控制器默认从DispatcherServlet.properties 文件中加载映射器、适配器、图形解析器等组件。也就是说如果你不在dispatcher-servlet.xml中额外配置,那么就加载这个文件中的默认配置。

0 0
原创粉丝点击