如何手动将Spring MVC视图呈现为html?

伯蒂

是否可以在我的控制器映射方法中将视图呈现为html,以便我可以将呈现的html作为json对象的一部分返回?

我通常的控制器方法示例:

@RequestMapping(value={"/accounts/{accountId}"}, method=RequestMethod.GET)
public String viewAcc(final HttpServletRequest req, 
        final HttpServletResponse resp, final Model model,
        @PathVariable("accountId") final String docId) {

    // do usual processing ...

    // return only a STRING value, 
    //   which will be used by spring MVC to resolve into myview.jsp or myview.ftl
    //   and populate the model to the template to result in html
    return "myview";
}

我期望什么:

@RequestMapping(value={"/accounts/{accountId}"}, method=RequestMethod.GET)
public String viewAcc(final HttpServletRequest req, 
        final HttpServletResponse resp, final Model model,
        @PathVariable("accountId") final String docId) {

    // do usual processing ...

    // manually create the view
    ModelAndView view = ... ? (how)

    // translate the view to the html
    //   and get the rendered html from the view
    String renderedHtml = view.render .. ? (how)

    // create a json containing the html
    String jsonString = "{ 'html' : " + escapeForJson(renderedHtml) + "}"

    try {
        out = response.getWriter();
        out.write(jsonString);
    } catch (IOException e) {
        // handle the exception somehow
    }

    return null;
}

我想知道在控制器方法内创建视图并将视图手动呈现为html的正确方法是什么。

更新资料

这是公认的答案指导下的工作示例:

View resolvedView = thiz.viewResolver.resolveViewName("myViewName", Locale.US);
MockHttpServletResponse mockResp = new MockHttpServletResponse();
resolvedView.render(model.asMap(), req, mockResp);
System.out.println("rendered html : " + mockResp.getContentAsString());
泰德·比格姆

尝试自动装配ViewResolver,然后调用resolveViewName("myview", Locale.US)获取视图。

然后调用render()该视图,并向其传递一个“模拟” HTTP响应,该响应具有一个ByteArrayOutputStream作为其输出,并从ByteArrayOutputStream获取HTML。

更新资料

这是从问题复制而来的工作示例。(所以代码实际上就是答案)

View resolvedView = thiz.viewResolver.resolveViewName("myViewName", Locale.US);
MockHttpServletResponse mockResp = new MockHttpServletResponse();
resolvedView.render(model.asMap(), req, mockResp);
System.out.println("rendered html : " + mockResp.getContentAsString());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将Spring MVC视图呈现为字符串

来自分类Dev

在MVC 4中如何将视图元素之一呈现为XML文本?

来自分类Dev

将Kendo模板中的HTML标签呈现为HTML

来自分类Dev

如何在ASP.NET MVC4 Api控制器中将视图呈现为字符串

来自分类Dev

在jQuery上,如何手动将图像src定义为html <img>标签

来自分类Dev

如何使用ControllerAs语法手动更新AngularJS视图?

来自分类Dev

当我将视图呈现为HTML时,mpdf会跳过CSS吗?

来自分类Dev

如何在MVC 6中手动验证模型

来自分类Dev

使用Laravel进行手动自动完成搜索,如何将信息传递给视图中的div

来自分类Dev

手动触发骨干视图事件

来自分类Dev

如何将HTML文件呈现为haml

来自分类Dev

Serilog-如何将格式化的消息手动呈现为字符串?

来自分类Dev

Sitecore:将内容树子项呈现为列表视图

来自分类Dev

在Spring MVC之外手动调用Spring注释验证

来自分类Dev

ASP.NET MVC。如何手动将“级联删除”添加到代码优先关系?

来自分类Dev

视图被呈现为html

来自分类Dev

在MVC 4中如何将视图元素之一呈现为XML文本?

来自分类Dev

将文档字段呈现为HTML

来自分类Dev

手动插入视图

来自分类Dev

Django模板使用基于函数的视图将字典值呈现为html形式

来自分类Dev

MVC Html.ActionLink将Area呈现为QueryString而不是URL的一部分

来自分类Dev

如何将csrf_token添加到手动创建的HTML表单?

来自分类Dev

如何在MVC 4中将数据库行呈现为html标头?

来自分类Dev

Sitecore:将内容树子项呈现为列表视图

来自分类Dev

ASP.NET MVC。如何手动将“级联删除”添加到代码优先关系?

来自分类Dev

如何将HTML呈现为文本

来自分类Dev

如何在odoo中创建手动视图?

来自分类Dev

Express 将原始 html 呈现为文本

来自分类Dev

Iron 将 html 呈现为文本

Related 相关文章

  1. 1

    如何将Spring MVC视图呈现为字符串

  2. 2

    在MVC 4中如何将视图元素之一呈现为XML文本?

  3. 3

    将Kendo模板中的HTML标签呈现为HTML

  4. 4

    如何在ASP.NET MVC4 Api控制器中将视图呈现为字符串

  5. 5

    在jQuery上,如何手动将图像src定义为html <img>标签

  6. 6

    如何使用ControllerAs语法手动更新AngularJS视图?

  7. 7

    当我将视图呈现为HTML时,mpdf会跳过CSS吗?

  8. 8

    如何在MVC 6中手动验证模型

  9. 9

    使用Laravel进行手动自动完成搜索,如何将信息传递给视图中的div

  10. 10

    手动触发骨干视图事件

  11. 11

    如何将HTML文件呈现为haml

  12. 12

    Serilog-如何将格式化的消息手动呈现为字符串?

  13. 13

    Sitecore:将内容树子项呈现为列表视图

  14. 14

    在Spring MVC之外手动调用Spring注释验证

  15. 15

    ASP.NET MVC。如何手动将“级联删除”添加到代码优先关系?

  16. 16

    视图被呈现为html

  17. 17

    在MVC 4中如何将视图元素之一呈现为XML文本?

  18. 18

    将文档字段呈现为HTML

  19. 19

    手动插入视图

  20. 20

    Django模板使用基于函数的视图将字典值呈现为html形式

  21. 21

    MVC Html.ActionLink将Area呈现为QueryString而不是URL的一部分

  22. 22

    如何将csrf_token添加到手动创建的HTML表单?

  23. 23

    如何在MVC 4中将数据库行呈现为html标头?

  24. 24

    Sitecore:将内容树子项呈现为列表视图

  25. 25

    ASP.NET MVC。如何手动将“级联删除”添加到代码优先关系?

  26. 26

    如何将HTML呈现为文本

  27. 27

    如何在odoo中创建手动视图?

  28. 28

    Express 将原始 html 呈现为文本

  29. 29

    Iron 将 html 呈现为文本

热门标签

归档