gpt4 book ai didi

java - Spring MVC : generate ModelAndView programmatically

转载 作者:行者123 更新时间:2023-12-01 14:37:38 24 4
gpt4 key购买 nike

我想知道是否可以以编程方式生成 ModelAndView 的输出,而不是通过 Controller 的返回参数。例如:我有以下方法返回编译后的 html:

@RequestMapping(value = "/get-list", method = RequestMethod.GET, headers = BaseController.AJAX_HEADER)
public ModelAndView getList(@RequestParam(value = "page", required = true) Integer page,
@ActiveUser User activeUser) {
ModelAndView result = null;

try {
result = new ModelAndView("administration/events-log/list");
result.addObject("events", eventsLogService.getList(page, Config.RECORDS_PER_PAGE));
}
catch (Exception e) {
log(e, activeUser.getUsername());
}

return result;
}

我想要的是创建这样的东西:

@RequestMapping(value = "/get-list", method = RequestMethod.GET, headers = BaseController.AJAX_HEADER)
public @ResponseBody HashMap<String, Object> getList(@RequestParam(value = "page", required = true) Integer page,
@ActiveUser User activeUser) {
HashMap<String, Object> json = new HashMap<String, Object>();

try {
json.put("error", 0);
ModelAndView result = new ModelAndView("administration/events-log/list");
result.addObject("events", eventsLogService.getList(page, Config.RECORDS_PER_PAGE));

json.put("content", result);

}
catch (Exception e) {
/**/
}

return json;
}

因此,将发送回客户端的 JSON 对象将如下所示:{'错误':0,'内容':compiled_html}

有什么想法吗?谢谢

最佳答案

ModelAndView 没有输出。它只知道 View 的名称。 View 的渲染独立于 Spring MVC。

如果您只想发送包含一些 HTMLJSON,您可以将 JSON 代码直接放在您的 jsp 上。像这样改变你的java代码:

result = new ModelAndView("path/to/json");
result.addObject("events", eventsLogService.getList(page, Config.RECORDS_PER_PAGE));
result.addObject("html", "administration/events-log/list");

您的 JSON jsp 可能如下所示:

<%@ page contentType="application/json" %>
{
"error": "0",
"content": "<jsp:include page="${html}" />"
}

请注意,此代码仅供说明之用。您可能已根据您的情况进行了调整。并且您必须转义包含的 HTML 才能获得有效的 JSON

关于java - Spring MVC : generate ModelAndView programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16330423/

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