加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

带有Spring Boot的JSON和HTML控制器

发布时间:2020-12-15 01:24:36 所属栏目:大数据 来源:网络整理
导读:我正在编写一个应用程序,其中包括我需要对某些对象进行CRUD操作.我需要能够为人类用户提供HTML页面,为其他应用程序提供JSON.现在我的网址对于“阅读”看起来像这样: GET /foo/{id} - Serves HTMLGET /rest/foo/{id} - Serves JSONetc. 这似乎有点多余.我宁

我正在编写一个应用程序,其中包括我需要对某些对象进行CRUD操作.我需要能够为人类用户提供HTML页面,为其他应用程序提供JSON.现在我的网址对于“阅读”看起来像这样:

GET  /foo/{id}      -> Serves HTML
GET  /rest/foo/{id} -> Serves JSON
etc.

这似乎有点多余.我宁愿有这样的事情:

GET /foo/{id}.html OR /foo/{id} -> Serves HTML
GET /foo/{id}.json              -> Serves JSON

Spring Boot可以这样做吗?如果是这样,怎么样?

我知道如何返回JSON:

@RequestMapping(value = "/foo/{id}",method = RequestMethod.GET,produces = "application/json")
public Object fetch(@PathVariable Long id) {
    return ...;
}

我也知道如何返回HTML:

@RequestMapping("/app/{page}.html")
String index(@PathVariable String page) {
    if(page == null || page.equals(""))
        page = "index";
    return page;
}

但我不知道如何让控制器根据请求做一个或另一个.

最佳答案
这是Spring Boot的默认行为.唯一的事情是你必须标记一个@RequestMapping来生成JSON.例:

@Controller
class HelloController {

    // call http://

阅读更多:http://spring.io/blog/2013/05/11/content-negotiation-using-spring-mvc和http://spring.io/blog/2013/06/03/content-negotiation-using-views

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读