Java Spring从模板创建响应

时间:2016-05-30 13:12:19

标签: java ajax spring spring-mvc

直到现在发送ajax请求时,在我们的控制器中,我们确实返回了JsonMessage并在客户端装饰数据。但是最近我们正在使用第三方UI框架,它接受一个随时可用的HTML作为ajax回调。

有没有办法在不将所有html标记带到控制器的情况下执行此操作?像后处理器这样的东西接受json和模板,呈现它然后发送给客户端?

注意:响应采用JSON格式,其中包含一个包含该html的属性。

我们使用springframework 4.2.6。

1 个答案:

答案 0 :(得分:0)

通常,您需要在控制器中添加一些返回ModelAndView对象的方法。

您还需要配置ViewResolver并在ModelAndView对象中设置视图名称和相应的模型。 喜欢这个

@Controller
public class DefaultController {
  @RequestMapping(value = "/html", produces = "application/json")
  public ModelAndView getUserHtml(HttpServletResponse response) throws Exception {
    response.setContentType("application/json");
    return new ModelAndView("user", Collections.singletonMap("user", this.user));
  }
}

你会看到像这样的回应

{
  "response": "<div><h1>Java Spring creating response from template</h1><h2>User</h2><p>username: superuser</p><p>password: secret</p><p>email: superuser@mail.com</p></div></html>"
}

工作示例项目:https://github.com/sandarkin/so-q37526576