第九章.处理器映射器和适配器

本次课程在 第八章 基础上进行的!!!

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

一.SimpleUrlHandlerMapping

找到springmvc.xml文件

找到下面的代码进行注释

<!--
<bean name="/query_test.action" class="cn.com.mvc.controller.FruitControllerTest"></bean>
-->

<!-- 
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
-->

并且添加代码:

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/queryFruits_test1.action">fruitController</prop>
            <prop key="/queryFruits_test2.action">fruitController</prop>
        </props>
    </property>
</bean>

<bean id="fruitController"  class="cn.com.mvc.controller.FruitControllerTest"></bean>

测试代码的地址是否可以成功访问

二.

在controller包下创建新的类,如下图

FruitControllerTest2.java代码实现:

public class FruitControllerTest2 implements HttpRequestHandler {
    private FruitsService fruitsService = new FruitsService();
    @Override
    public void handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
        //模拟Service获取水果商品列表
        List<Fruits> fruitsList = fruitsService.queryFruitsList();
        //设置模型数据
        arg0.setAttribute("fruitsList", fruitsList);
        //设置转视图
        arg0.getRequestDispatcher("/WEB-INF/jsp/fruits/fruit.jsp").forward(arg0, arg1);
    }
}

找到springmvc.xml

添加代码

注意红颜色的部分

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
    <props>
      <prop key="/queryFruits_test1.action">fruitController</prop>
      <prop key="/queryFruits_test2.action">fruitController</prop>

      <prop key="/queryFruits_test3.action">fruitController2</prop>
    </props>
  </property>
</bean>

<bean id="fruitController2" class="cn.com.mvc.controller.FruitControllerTest2"></bean>

<!-- /queryFruits_test3.action -->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>

进行测试:

三.JSON

修改FruitControllerTest2.java文件

public class FruitControllerTest2 implements HttpRequestHandler {

    private FruitsService fruitsService = new FruitsService();

    @Override
    public void handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
        //模拟Service获取水果商品列表
        List<Fruits> fruitsList = fruitsService.queryFruitsList();
        //将fruitsList转为JSON串
        String josnInfo = convertListToJson(fruitsList);
        //设置返回格式
        arg1.setCharacterEncoding("utf-8");
        arg1.setContentType("application/json;charset=utf-8");
        //写出JSON
        arg1.getWriter().write(josnInfo);

    }

    private String convertListToJson(List<Fruits> fruitsList){

        StringBuilder builder = new StringBuilder();
        builder.append(‘[‘);
        for(Fruits fruits: fruitsList){
            builder.append(‘{‘);
            builder.append("\"name\":\"").append(fruits.getName()).append("\",");
            builder.append("\"price\":\"").append(fruits.getPrice()).append("\",");
            builder.append("\"producing_area\":\"").append(fruits.getProducing_area()).append("\",");
            builder.append("},");
        }
        builder.deleteCharAt(builder.length() - 1);
        builder.append("]");
        return builder.toString();
    }
}

其余不变访问二中的地址

注意此时需要在浏览器上测试

http://localhost:8080/SpringMVC_1/queryFruits_test3.action

原文地址:https://www.cnblogs.com/Mrchengs/p/9822490.html

时间: 2024-10-07 01:28:26

第九章.处理器映射器和适配器的相关文章

springmvc03 非注解和注解处理器映射器和适配器

1其它非注解处理器映射器和适配器 1.1BeanNameUrlHandlerMapping(映射器) 根据请求url(XXXX.action)匹配spring容器bean的 name 找到对应的bean(程序编写的Handler) 1.2SimpleUrlHandlerMapping(映射器) <!--简单url映射, 集中配置bean的id对应 的url --> <bean class="org.springframework.web.servlet.handler.Simp

springMVC非注解常用的&quot;处理器映射器&quot;、&quot;适配器&quot;、&quot;处理器&quot;

非注解处理器映射器1. org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping url 到bean name的映射2. org.springframework.web.servlet.handler.SimpleUrlHandlerMapping url 到bean id的映射 非注解适配器1. org.springframework.web.servlet.mvc.SimpleControllerHandlerAdap

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

在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器. 在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器. 在spring3.1之前使用org.springframework.web.servlet.mv

注解的处理器映射器和适配器

1, 配置注解映射器和适配器. <!--注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!--注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMa

springmvc 前段控制器 处理器映射器 处理器适配器 视图视图解析器 配置

1. 前段控制器 新建项目在web.xml中配置前段控制器 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</pa

【SpringMVC笔记】第四课 注解的处理器映射器和处理器适配器使用

一.注意点: 版本问题 spring3.2以前的版本,注解的映射器和适配器使用以下两个类. org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping.class org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.class 在新版本的源码中可以看到以下注释: 在3.2 包含及以后的版本中使用如

使用推荐使用的映射器和适配器

默认的注解配置 我们发现默认配置的处理器映射器和适配器都已经过期,不推荐使用. 配置推荐使用的映射器和适配器: 测试:

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

一.非注解的处理器映射器 1,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 该bean 按照名称配置url,如下: <bean id="itemsController1" name="/queryItems_test.action" class="cn.itcast.ssm.controller.ItemsController1" /> 2,org.

【SpringMVC笔记】第三课 处理器映射器+处理器适配器

第二课的例子中,在springmvc.xml中配置使用了第一种处理器映射器和处理器适配器,如下所示. <!-- 配置第一种处理器映射器 BeanNameUrlHandlerMapping --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 配置第一种处理器适配器 SimpleControllerHandl