SpringMVC学习之非注解的处理器映射器和适配器

非注解的处理器映射器:

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
另外一个SImpleURLHandlerMapping:
    <!-- 简单url映射 -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <!-- 对itemsController进行url映射 url是/queryItems.action -->
                <prop key="/queryItems1.action">itemsController</prop>
                <prop key="/queryItems2.action">itemsController</prop>
            </props>
        </property>
    </bean>


结论: 多个映射器可以并存,映射到同一个handler处理。前端控制器判断url能让哪个映射器处理,就让正确的映射器处理。


非注解处理器适配器:

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

要求编写的Handler实现Controller接口。

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

要求编写的Handler实现HttpRequestHandler接口,实现:

public class ItemsController2 implements HttpRequestHandler {
    @Override
    public void handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        //调用service查询数据库,查询商品列表,这里使用静态数据模拟
        List<Items> itemsList = new ArrayList<Items>();
        //向List中填充静态数据
        Items items1 = new Items();
        items1.setName("苹果笔记本");
        items1.setPrice(6000.0);
        items1.setDetail("iMac");

        Items items2 = new Items();
        items2.setName("小米手机");
        items2.setPrice(2499.0);
        items2.setDetail("小米 mix");

        itemsList.add(items1);
        itemsList.add(items2);
        //设置模型数据
        httpServletRequest.setAttribute("itemsList",itemsList);
        //设置转发视图
        httpServletRequest.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(httpServletRequest,httpServletResponse);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值