使用@RequestMapping 定义处理器函数-支持的函数返回类型

支持的返回类型包括:

1. ModelAndView  ,其中model被command 对象以及由@ModelAttribute 元注解所标注的数据处理函数的返回值,隐式地进行丰富。

2. Model 对象,view 名称隐式的通过RequestToViewNameTranslator 来决定,并且model被command 对象以及由@ModelAttribute 元注解所标注的数据处理函数的返回值,隐式地进行丰富。

3. 将向model对象暴露的一个map对象,view名称隐式的通过RequestToViewNameTranslator 来决定,并且model被command 对象以及由@ModelAttribute 元注解所标注的数据处理函数的返回值,隐式地进行丰富。

4. View 对象,model被command 对象以及由@ModelAttribute 元注解所标注的数据处理函数的返回值,隐式地进行丰富。handler 函数也可以以编程的方式来丰富model对象,例如:处理器的形参为对该model的引用,此时在handler函数中对model的修改,都将实际影响该model。

5. 一个String 对象,解释为逻辑视图的名称,model被command 对象以及由@ModelAttribute 元注解所标注的数据处理函数的返回值,隐式地进行丰富。handler 函数也可以以编程的方式来丰富model对象,例如:处理器的形参为对该model的引用,此时在handler函数中对model的修改,都将实际影响该model。

6. void ,如果该函数自己处理response(直接写出response 内容,为了直接写出response 内容,可以声明一个ServletResponse/HttpServletResponse 类型)或者view的名称被认为可以通过RequestToViewNameTranslator 隐式决定(在handler的方法签名中不声明一个response 参数)时,应该返回void。

7. 如果方法标注了@ResponseBody 元注解,那么返回类型将被写入到response HTTP body中。返回值将通过HttpMessageConverter 转换成声明的方法参数类型。

8. HttpEntity<?> or ResponseEntity<?>  用来提供对servelt response 的HTTP 头部和内容的操作。entity 的body将通过HttpMessageConverter 转换成response 流。

9. HttpHeader:没有body的响应。

10.Callable<?>   :如果应用想要由spring mvc托管的某个线程中异步生产出返回值,此时handler的返回值可以是一个Callable<?>.

11. DeferredResult<?>  : 如果应用想要由它自己选定的某个线程来生产出返回值,此时handler的返回值可以是一个DeferredResult<?>  。

12. ListenableFuture<?>or CompletableFuture<?>/CompletionStage<?> :如果应用想要通过一次线程池的提交来生产出返回值,此时handler的返回值可以是ListenableFuture<?>or CompletableFuture<?>/CompletionStage<?>
13. ResponseBodyEmitter :如果想要实现异步向response中写入多个对象时,需要返回ResponseBodyEmitter ,ResponseBodyEmitter
 也可以作为ResponseEntity 中的body。
14. SseEmitter :如果应用想要异步向response中写入server-sent-event(服务器端发送的消息),此时可以返回SseEmitter ,SseEmitter
 也可以作为ResponseEntity 中的body。
15. StreamingResponseBody :如果应用想要异步向response outputstream中写入时,可以返回一个StreamingResponseBody 对象, StreamingResponseBody 也可以作为ResponseEntity 中的body。
16. 通过在函数级别上使用@ModelAttribute 元注解的方式(或者默认的属性名称由返回类型的class名称来决定),任意其他返回类型都可以被认为是需要暴露给view的一个model attribute。model被command 对象以及由@ModelAttribute 元注解所标注的数据处理函数的返回值,隐式地进行丰富。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值