Spring Boot项目@RestController如何使用重定向redirect
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍Spring Boot项目@RestController如何使用重定向redirect,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring Boot @R
千家信息网最后更新 2025年02月22日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安全错误
数据库的锁怎样保障安全
阜南软件开发班
网络安全违规惩处工作制度
服务器需要搭配显示器吗
js有朝一日会不会连接数据库
上海校区运营软件开发
数据库放量上涨的原因
人才履历数据库
广州三只箭网络技术有限公司
sty本地架设网站数据库
网络安全解决对策
广州erp软件开发订制
如何看lol是哪个国家的服务器
数据库删除教师表代码
当前网络安全的关键指标
虔东软件开发工作室
亚马逊数据库数据安全
部队网络安全责任承诺书
登录的代码 数据库
晋城天杰软件开发公司
温州软件开发学
中兴软件开发签约
医疗网络技术有限公司招聘
南京云主机服务器租用
深圳pdu服务器电源制造商
网络安全信息报送机制
英雄联盟国际服推荐玩哪个服务器
服务器电源输出为什么没有电感
网络安全法网站日志
例子软件开发生命周期模型
存储技术和数据库设计