在Spring控制器方法中返回HTML或JSON

在Spring控制器方法中返回HTML或JSON,json,spring-mvc,response,Json,Spring Mvc,Response,根据Spring控制器方法的逻辑,我想知道在同一个方法中返回HTML或JSON的正确方法。我已经在.NET中完成了这项工作,只需要知道如何在春季完成这项工作 UserModel user = new UserModel(); user.setFirstName("Michael"); user.setLastName("Flynn"); model.getList().add(user); model.setSearchTerm("test

根据Spring控制器方法的逻辑,我想知道在同一个方法中返回HTML或JSON的正确方法。我已经在.NET中完成了这项工作,只需要知道如何在春季完成这项工作

    UserModel user = new UserModel();       
    user.setFirstName("Michael");
    user.setLastName("Flynn");

    model.getList().add(user);
    model.setSearchTerm("test");

    if(true)
    {
        return new ModelAndView("controls/tables/users", "model", model);
    }
    else
        return model;

我最近需要弄清楚这一点,并且很幸运地从SpringSource发了一篇博文。

我假设请求使用标准HTTP内容协商来指示他们想要的格式。如果是这样,您可以使用。它还支持使用URL的“扩展名”选择格式,例如:将选择JSON和将选择HTML。

这仅适用于JSON。它不涉及返回一个或另一个,以及如何执行。如果用户知道他们想要什么,那就太好了。但我想返回HTML或JSON,这取决于是否发生错误。返回HTML基本上是成功的,而返回JSON则意味着导致了错误。我有javascript,可以在客户端处理这两种情况,以测试它是HTML还是JSON。客户端javascript工作得很好,因为我在.NET中也做了同样的事情。我的问题是我不知道请求的内容类型以确定输出。好的,从您的控制器返回一个ModelAndView,其中的视图是JSTLView(或适合您使用的HTML模板语言的任何视图)或MappingJacksonJsonView(错误时)。是否有在代码中执行此操作的示例?我正在研究一个名为JsonView的flexjson子类,它可以满足我的需要。这个线程有更新吗?有可接受的答案吗?