Java SpringWebMVC:如何在视图类而不是控制器中使用ResponseEntity?

Java SpringWebMVC:如何在视图类而不是控制器中使用ResponseEntity?,java,spring,spring-mvc,Java,Spring,Spring Mvc,使用SpringWebMVC,我希望使用ResponseEntity将字节发送回客户端 例如,我可以这样做: @RequestMapping(value = "/getMyBytes", method = RequestMethod.GET) public ResponseEntity< byte[] > handleGetMyBytesRequest() { // Get bytes from somewhere... byte[] byteData = ....

使用SpringWebMVC,我希望使用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 );
}
@RequestMapping(value=“/getMyBytes”,method=RequestMethod.GET)
公共响应属性handleGetMyBytesRequest()
{
//从某处获取字节。。。
字节[]字节数据=。。。。
HttpHeaders responseHeaders=新的HttpHeaders();
responseHeaders.setContentType(MediaType.IMAGE\u PNG);
responseHeaders.setContentLength(byteData.length);
返回新的响应属性(byteData,
负责人,HttpStatus.OK);
}
但是现在控制器自己决定如何将数据呈现给客户机。这不应该是视图的工作吗

所以我的问题是,当我有这个视图类:

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

        // ???
    }
}
公共类DemoView扩展了AbstractView
{
@凌驾
受保护的void renderMergedOutputModel(映射<字符串,对象>模型,
HttpServletRequest请求、HttpServletResponse响应)引发异常
{
bytes[]byteData=model.get(“byteData”);
// ???
}
}
当我想在那里使用ResponseEntity时,视图代码必须是什么样子

或者在视图类中使用ResponseEntity没有意义,如果是,为什么


非常感谢你的帮助

AbstractView
中,您只需使用
HttpServletResponse
对象设置HTTP响应状态,并将
字节[]
数组写入输出流:

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