springMVC的处理器配置
来源:互联网 发布:杭州阿里妈妈软件 编辑:程序博客网 时间:2024/04/28 22:48
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"><!-- 配置Handler(controller)的bean,让Handler(controller)在spring容器中加载bean的name属性就相当于一个url,所以name属性应该写成url形式,且应该以.action结尾,因为在web.xml中配置了url-pattern为.action--><bean id="queryItems1" name="/queryItems.action" class="com.java.controller.ItemsController"/><bean id="queryItems2" name="/queryItems4.action" class="com.java.controller.ItemsHandler"/><!-- 配置注解的Handler(Controller)的bean,不需要id和name --><!-- <bean class="com.java.controller.ItemsAnnotationController"/> --><!-- 设置包扫描,设置后不需要将Handler(Controller)在该文件里面配置成bean了,它会自动扫描标注了@Controller,@Service,@Repository,@Component注解的类实际开发中使用这种方式 --><context:component-scan base-package="com.java.controller"></context:component-scan><!-- 配置处理器映射器处理器映射器会将bean的name作为url进行查找(映射路径),需要在配置Handler(Controller)时指定bean的name属性,也就是url --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/><!-- 另一种处理器映射器:简单url映射器同一个Handler可以有多个简单url映射 --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><!-- 同一个Handler可以有多个简单url映射 --><prop key="/queryItems1.action">queryItems1</prop><prop key="/queryItems2.action">queryItems1</prop><prop key="/queryItems3.action">queryItems2</prop></props></property></bean><!-- 配置处理器适配器:配置了该处理器适配器后,Handler需要实现Controller接口 --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/><!-- 另一个处理器适配器 :配置了该处理器适配器后,Handler需要实现HttpRequestHandler接口--><bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!-- 配置注解的处理器映射器 --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/><!-- 配置注解的处理器适配器 --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/><!-- 该标签可以直接代替上面的两个配置注解的处理器映射器和适配器的配置,而且还会加载很多其他的参数配置,比如会加载json的转换器 --><!-- <mvc:annotation-driven></mvc:annotation-driven> --></beans>
一.非注解的处理器映射器和适配器
非注解的处理器映射器:
①:<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
处理器映射器会将bean的name作为url进行查找(映射路径),需要在配置Handler(Controller)时指定bean的name属性,也就是url
②:<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/queryItems1.action">queryItems1</prop>
<prop key="/queryItems2.action">queryItems2</prop>
</props>
</property>
</bean>
需要在配置的Handler(Controller)bean中设置bean的id属性,id被用在<prop>de标签里面
key即为映射的url访问路径,作用同第一种映射器的Handler的name
多个处理器映射器可以同时存在,
非注解的处理器适配器:
①:<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
配置了该处理器适配器后,Handler(Controller)需要实现Controller接口
②:<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
配置了该处理器适配器后,Handler需要实现HttpRequestHandler接口
配置此种处理器适配器后Handler的编写类似于原始的servlet,利用request进行内部转发或response重定向
多个适配器可以同时存在
二.注解的处理器映射器和适配器
①:注解的处理器映射器:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
②:注解的处理器适配器:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
③:<mvc:annotation-driven></mvc:annotation-driven>
<mvc:annotation-driven></mvc:annotation-driven>可以直接代替上面的两个配置注解的处理器映射器和适配器的配置,
而且还会加载很多其他的参数配置,比如会加载json的转换器,实际开发中会使用这种方式
注意:注解的处理器映射器必须和注解的处理器适配器配对使用
④:<context:component-scan base-package="com.java.controller"></context:component-scan>
设置包扫描,设置后不需要将Handler(Controller)在该文件里面配置成bean了,
它会自动扫描标注了@Controller,@Service,@Repository,@Component注解的类
实际开发中使用这种方式
三.Controller的方法的返回值的几种类型
①:ModelAndView
需要定义一个ModelAndView对象,将数据和映射路径放在里面
②:String
可以在定义的方法的形参里面定义一个Model或者ModelMap对象,用来存放数据,返回的字符串的值就是逻辑视图名(url映射路径,同上)
此种方法可以进行重定向和转发
①:重定向:逻辑视图名前面加上redirect
return "redirect:queryItems.action";
②:内部转发:逻辑视图名前面加上forward
return "forward:queryItems.action";
③:void
可以在定义的方法的形参里面定义request和response,用来存放和读取传输的数据,并进行servlet形式的重定向和转发
也可以通过response指定响应结果(跟servlet差不多)
- springMVC的处理器配置
- springmvc全局异常处理器的配置
- springmvc 配置处理器@RequestMapping
- SpringMvc全局异常处理器配置
- 【SpringMVC框架】注解的处理器映射器和适配器配置
- 【SpringMVC框架】注解的处理器映射器和适配器配置
- SpringMVC--配置FastJSON为JSON处理器
- SpringMVC非注解的处理器的映射器和适配器的配置
- SpringMVC处理器映射器,适配器,视图解析器的配置方法
- SpringMVC框架前端控制器、处理适配器和处理器映射器、视图解析器的配置
- SpringMVC中一个Handler(处理器)配置专属的拦截器组
- SpringMVC框架前端控制器、处理适配器和处理器映射器、视图解析器的配置
- SpringMVC非注解的处理器适配器-HandlerAdapter
- SpringMVC自定义处理器里的那些事
- SpringMVC 两个常用的处理器适配器
- Springmvc 3.2 弃用的两个处理器
- springmvc的两个处理器适配器(四)
- SpringMVC三种映射处理器的用法
- 欢迎使用CSDN-markdown编辑器
- HashSet如何保证元素的唯一性
- Kotlin 对 FindViewById 说拜拜
- 有关Lucene的问题(7):用Lucene构建实时的索引
- 1-1 欢迎来的C++世界 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 通
- springMVC的处理器配置
- 详解Javascript中prototype属性(推荐)
- Python的time模块
- 使用Spring Security进行用户权限控制
- Spring Security OAuth2 配置注意点
- jquery动态添加带有样式的HTML标签元素
- service命令详解
- kubernetes之kube-policy-controller
- 保留最大的数