欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring mvc

程序员文章站 2024-01-13 17:09:28
...

1.关于spring mvc中 redirect 和 forward

 

  1. 可以使用RedirectView
  2. 还可以使用redirect: 前缀 和 forward:前缀
  3. 在redirect中传递参数,除了session中加以外还可以在modelredirectAttributesflashMap中添加
  4. 在flashMap中添加方法如下,RequestContextUtils 获取 flashMapManager, 此对象可以save flashMap, 在下个请求的controller 中调用flashMapManager的outFlashMap获取参数
  5. redirectAttributes中添加参数,@RequestMapping 注释的方法中支持参数 RedirectAttributes,在此对象中添加参数会以url pathVariable形式传递给目标url的controller
  6. model中传递参数,当controller的处理方法中不含有redirectAttributes时,model充当传递介质,model中的key-value都会以url PathVariable形式传递

2.关于Exception

 

  1. @ExceptionHandler用于处理该方法所在的controller里抛出的exception
  2. HandlerExceptionResolver用户拦截controller的exception, 默认情况下spring注册defaultHandlerExceptionResolver来处理异常,不过可以注册spring的另外一个handlerExceptionResolver来处理抛出的exception,SimpleMappingExceptionResolver是用来将不一样的exception映射到各个error page
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
	<property name="exceptionMappings">
		<props>
			<prop key="Exception">error/error</prop>
		</props>
	</property>
</bean>

 

3.新的RequestMapping的支持类:RequestMappingHandlerMapping

 

    有点绕口的类名,在早期的(3.1之前)的springmvc中都是走DefaultAnnotationHandlerMapping来确定哪个controller然后再走AnnotationMethodHandlerAdapter来确定是哪个method进行处理,所以在HandlerInterceptor中传入的参数是classObject而不是methodObject所以非常的不方便(某土公司居然封装了这个类,而没有封装新的类)。