0

我正在从我的控制器中获取一个外部网页(作为字符串)。如何将这个包含 HTML 的字符串作为ModelAndView?

4

1 回答 1

7

如果您想将该网页返回给客户端/浏览器,则无需创建 ModelAndView。

而是这样做

@Controller
public class MyController() {

    @RequestMapping(...)
    @ResponseBody
    public String controllerMethod() {
        String htmlDocument = getHtmlFromSomeWhere();
        return htmlDocument;
    }
}

如果你必须返回一个ModelAndView你必须编写你自己的View实现。看看AbstractPdfView一些模板。

return ModelAndView(new MyPlainHtmlView(htmlDocument));


public class MyPlainHtmlView implements View {
     ....

     private final String htmlDocument;

     public MyPlainHtmlView(String htmlDocument) {
         this.htmlDocument = htmlDocument;
     }

     @Override
     renderMergedOutputModelMap<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
           ServletOutputStream out = response.getOutputStream();
           out.write(this.htmlDocument.getBytes("utf-8"));
     }
}
于 2013-05-28T13:27:39.897 回答