gpt4 book ai didi

java - Spring Web MVC : How to use a ResponseEntity in the view class, 不是 Controller ?

转载 作者:行者123 更新时间:2023-12-01 15:43:55 25 4
gpt4 key购买 nike

使用 Spring Web MVC,我想使用 ResponseEntity 将字节发送回客户端。

例如,我可以这样做:

@RequestMapping(value = "/getMyBytes", method = RequestMethod.GET)
public ResponseEntity< byte[] > handleGetMyBytesRequest()
{
// Get bytes from somewhere...
byte[] byteData = ....

HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType( MediaType.IMAGE_PNG );
responseHeaders.setContentLength( byteData.length );

return new ResponseEntity< byte[] >( byteData,
responseHeaders, HttpStatus.OK );
}

但现在 Controller 本身决定如何将数据呈现给客户端。这不应该是 View 的工作吗?

所以我的问题是,当我有这个 View 类时:

public class DemoView extends AbstractView
{
@Override
protected void renderMergedOutputModel( Map< String, Object > model,
HttpServletRequest request, HttpServletResponse response ) throws Exception
{
bytes[] byteData = model.get( "byteData" );

// ???
}
}

当我想在那里使用 ResponseEntity 时, View 代码必须是什么样子?

或者在 View 类中使用 ResponseEntity 没有意义吗?如果有,为什么?

非常感谢您的帮助!

最佳答案

AbstractView 中,您可以简单地使用 HttpServletResponse 对象来设置 HTTP 响应状态并将 byte[] 数组写入输出流:

response.setStatus(status);
response.getOutputStream().write(byteData);

关于java - Spring Web MVC : How to use a ResponseEntity in the view class, 不是 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7514952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com