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

一时失言乱红尘 2022-03-15 08:20 357阅读 0赞

1.注解的处理器映射器

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

  1. <!--================注解的处理器映射器==============================-->
  2. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

2.适配器

在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
注解适配器。
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
注解适配器

  1. <!--================注解的适配器==============================-->
  2. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

注意:

使用mvc:annotation-driven代替上面两个注解映射器和注解适配的配置
mvc:annotation-driven默认加载很多的参数绑定方法,
比如json转换解析器默认加载了,如果使用mvc:annotation-driven则不用配置上面的RequestMappingHandlerMappingRequestMappingHandlerAdapter实际开发时使用mvc:annotation-driven

  1. <mvc:annotation-driven></mvc:annotation-driven>

3.开发Handler(Controller)

使用注解的映射器和注解的适配器。(使用注解的映射器和注解的适配器必须配对使用)

  1. package spring.ssm.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.servlet.ModelAndView;
  5. import spring.ssm.pojo.Items;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. /**
  9. * Created by ubuntu on 17-7-7.
  10. */
  11. //使用Controller标记 他是一个控制器
  12. @Controller
  13. public class ItemsController3 {
  14. @RequestMapping("/queryItems3")
  15. //实现 对queryItems方法和url进行映射,一个方法对应一个url
  16. //一般建议将url和方法写成一样
  17. public ModelAndView queryItems()throws Exception{
  18. List<Items> list = new ArrayList<Items>();
  19. Items items_1 = new Items();
  20. items_1.setName("小米笔记本");
  21. items_1.setPrice(6000f);
  22. items_1.setDetail(" 小米笔记本电脑!");
  23. Items items_2 = new Items();
  24. items_2.setName("小米手机");
  25. items_2.setPrice(5000f);
  26. items_2.setDetail("mix小米手机!");
  27. list.add(items_1);
  28. list.add(items_2);
  29. ModelAndView modelAndView = new ModelAndView();
  30. System.out.println(1212);
  31. modelAndView.addObject("itemsList",list);
  32. modelAndView.setViewName("WEB-INF/items/itemsList.jsp");
  33. return modelAndView;
  34. }
  35. @RequestMapping("/selectIteam.action")
  36. public void selectIteam(){
  37. System.out.println("查找方法");
  38. }
  39. }

1.Handler 单个配置

  1. <!-- 配置Handler -->
  2. <bean class="spring.ssm.controller.ItemsController3"/>

2.Handler 使用组件扫描配置

  1. <!-- 对于注解的Handler 可以单个配置
  2. 实际开发中加你使用组件扫描
  3. -->
  4. <!-- <bean class="com.iot.ssm.controller.ItemsController3"/> -->
  5. <!-- 可以扫描controller、service、...
  6. 这里让扫描controller,指定controller的包
  7. -->
  8. <context:component-scan base-package="com.iot.ssm.controller"></context:component-scan>

运行配置:

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  5. version="3.1">
  6. <display-name>Archetype Created Web Application</display-name>
  7. <servlet>
  8. <servlet-name>springmvc</servlet-name>
  9. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  10. <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
  11. 若不配置,默认加载WEB-INF/servlet名称-servlet(springmvc-servlet.xml)
  12. -->
  13. <init-param>
  14. <param-name>contextConfigLocation</param-name>
  15. <param-value>classpath:springmvc1.xml</param-value>
  16. </init-param>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>springmvc</servlet-name>
  20. <url-pattern>*.action</url-pattern>
  21. </servlet-mapping>
  22. </web-app>

springmvc1.xml:

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  5. <!-- 配置Handler -->
  6. <!--<bean class="spring.ssm.controller.ItemsController3"/>-->
  7. <context:component-scan base-package="spring.ssm.controller"></context:component-scan>
  8. <!--================注解的处理器映射器==============================-->
  9. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
  10. <!--================注解的适配器==============================-->
  11. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
  12. <!-- 视图解析器
  13. 解析jsp,默认使用jstl,classpath下要有jstl的包
  14. -->
  15. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  16. <!-- 配置jsp路径的前缀 -->
  17. <property name="prefix" value="WEB-INF/"/>
  18. <!-- 配置jsp路径的后缀 -->
  19. <property name="suffix" value=".jsp"/>
  20. </bean>
  21. </beans>

访问:http://localhost:8080/queryItems3.action

作者:Mr_欢先生 链接:https://www.jianshu.com/p/d7d67ba89b82 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,357人围观)

还没有评论,来说两句吧...

相关阅读