Spring Boot项目@RestController如何使用重定向redirect
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍Spring Boot项目@RestController如何使用重定向redirect,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring Boot @R
千家信息网最后更新 2025年01月17日Spring Boot项目@RestController如何使用重定向redirect
这篇文章主要介绍Spring Boot项目@RestController如何使用重定向redirect,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Spring Boot @RestController重定向redirect
Spring MVC项目中页面重定向一般使用return "redirect:/other/controller/";即可。而Spring Boot使用了@RestController注解,上述写法只能返回字符串
解决方法如下
将一个HttpServletResponse参数添加到处理程序方法然后调用response.sendRedirect("some-url");
@RestControllerpublic class FooController { @RequestMapping("/foo") void handleFoo(HttpServletResponse response) throws IOException { response.sendRedirect("some-url"); }}
@RestController 注释下的重定向探讨
背景
在工作中遇到需要@RestController 内部的方法直接进行重定向或者转发
我们知道@RestController注解后,方法默认返回json。但是如果返回ModelAndView 则依然按ModelAndView曾经的逻辑走
那么springmvc内部的逻辑是如何走的呢?
HandlerMethodReturnValueHandlerComposite#selectHandler()HandlerMethodReturnValueHandlerComposite#handleReturnValue() ServletInvocableHandlerMethod#invokeAndHandle()RequestMappingHandlerAdapter#invokeHandlerMethod()RequestMappingHandlerAdapter#handleInternal() AbstractHandlerMethodAdapter#handle() DispatcherServlet#doDispatch()DispatcherServlet#doService()
自下向上调用,最终通过依据返回参数和MethodParameter(方法参数的简述类) 得到使用何种HandlerMethodReturnValueHandler,当我们加上@RestController 如果方法返回ModelAndView 或者 View自然返回ModelAndViewMethodReturnValueHandler去处理,因此就解决了需要在@RestController注解下转发或重定向的问题。
下面是springmvc 默认的15种HandlerMethodReturnValueHandler
0 = {ModelAndViewMethodReturnValueHandler@7121} 1 = {ModelMethodProcessor@8372} 2 = {ViewMethodReturnValueHandler@8373} 3 = {ResponseBodyEmitterReturnValueHandler@8374} 4 = {StreamingResponseBodyReturnValueHandler@7125} 5 = {HttpEntityMethodProcessor@8375} 6 = {HttpHeadersReturnValueHandler@8376} 7 = {CallableMethodReturnValueHandler@8377} 8 = {DeferredResultMethodReturnValueHandler@8378} 9 = {AsyncTaskMethodReturnValueHandler@8379} 10 = {ModelAttributeMethodProcessor@8380} 11 = {RequestResponseBodyMethodProcessor@7132} 12 = {ViewNameMethodReturnValueHandler@8381} 13 = {MapMethodProcessor@8382} 14 = {ModelAttributeMethodProcessor@8383}
以上是"Spring Boot项目@RestController如何使用重定向redirect"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
方法
项目
参数
注解
内容
篇文章
逻辑
处理
价值
兴趣
写法
字符
字符串
小伙
小伙伴
更多
注释
知识
程序
背景
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全数据库原理考试
sql触发器数据库答案
网络安全概念股投资逻辑
豆客平台刷新不出服务器
戴尔服务器可以连接两个网线吗
联通网络技术研究院全称
sql数据库应用类型
服务器虚拟机可以分用户吗
网络安全绘画简单画画
app开发联网云数据库
服务器返回浏览器状态代码
数据库外键约束的主表是哪个
数据库应用中自然连接的意思
数据库增删改查注意点
自己 服务器
dns服务器地址自己变了
软件开发过程与项目管理课程
山东省dns服务器虚拟主机
数据安全跟网络安全的区别
天龙八部手游可以换服务器么
sdn网络技术简介
集团公司服务器集中管理优势
1100w的服务器配电池
西昌软件开发公司
东营财务软件开发价格
服务器不同系统怎么配置
华力运通软件开发招聘
制作卡点视频软件开发
为源数据库
洛阳鼎鼎网络技术有限公司