需求:请求list.json返回以下数据

{
"jsonResult": {
"code": 200,
"message": "查询成功",
"nextUrl": null,
"data": [
{
"pageNo": 0,
"id": 1,
"type": "personal",
"avatarUrl": null,
"source": null,
"loginName": "test",
"name": "测试人员",
"certStatus": 0,
"idNum": null,
"password": "567",
"jobId": "smartTravel",
"cellphone": null,
"cellphoneActived": false,
"email": null,
"emailActived": false,
"projectName": "测试项目111",
"balance": 0,
"paymentCode": null,
"provinceId": "beijing",
"cityId": "xichengqu",
"address": "北京市西直门大街3321-1号werer",
"enabled": true,
"createTime": [
2019,
9,
25,
14,
11,
38
]
}
]
}
}

Controller里面有两个方法

    @PostMapping(value = "list")
public String list(Model model, String name, Integer certStatus,
@RequestParam(required = false) LocalDate startDate,
@RequestParam(required = false) LocalDate endDate,
Integer pageNo,Integer pageSize) { HashMap<String,Object> map = new HashMap<>();
map.put("name",name);
map.put("certStatus",certStatus);
map.put("startDate",startDate);
map.put("endDate",endDate); Page<ApiUser> list = userService.queryPage(map, pageNo,pageSize);
model.addAttribute("list", list); return "user2/list";
} @GetMapping(value = "list.json")
public JsonResult list(String name, Integer certStatus,
@RequestParam(required = false) LocalDate startDate,
@RequestParam(required = false) LocalDate endDate,
Integer pageNo,Integer pageSize) { HashMap<String,Object> map = new HashMap<>();
map.put("name",name);
map.put("certStatus",certStatus);
map.put("startDate",startDate);
map.put("endDate",endDate); Page<ApiUser> list = userService.queryPage(map, pageNo,pageSize); return successResult("查询成功",list);
}

调试的时候每次都进入list.json方法,实际返回结果却是网页代码。也就是返回list方法对应的视图。

只要进行如下配置就好:

    /**
* 配置多视图解析器
*
* @param manager manager 会自动构建,configureContentNegotiation可以进行配置
* @param viewResolvers 当前项目的 viewResolver, (此时会包含上面配置的 freemarkerViewResolver)
* @return ContentNegotiatingViewResolver
* @see WebMvcConfigurerAdapter#configureContentNegotiation(org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer)
*/
@Bean
public ContentNegotiatingViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager, List<ViewResolver> viewResolvers) { ContentNegotiatingViewResolver viewResolver = new ContentNegotiatingViewResolver();
viewResolver.setContentNegotiationManager(manager); // 设置默认view, default view 每次都会添加到 真正可用的视图列表中, json视图没有对应的ViewResolver
View jackson2JsonView = new MappingJackson2JsonView();
viewResolver.setDefaultViews(Collections.singletonList(jackson2JsonView)); Map<String, MediaType> mapping = Collections.singletonMap("json", MediaType.valueOf("application/json;charset=UTF-8")); //实测需要加上这个,否则之前通过实体属性序列化成json,返回json的方法容易出错。 MappingMediaTypeFileExtensionResolver extensionsResolver = new MappingMediaTypeFileExtensionResolver(mapping); manager.addFileExtensionResolvers(extensionsResolver); viewResolver.setViewResolvers(viewResolvers);
return viewResolver;
}

转载自:https://segmentfault.com/a/1190000015721806

类似文章:请求路径@PathVariable注释中有点.英文句号的问题(忽略英文句号后面的后缀)

https://www.programcreek.com/java-api-examples/?class=org.springframework.web.accept.ContentNegotiationManager&method=addFileExtensionResolvers

springboot拦截json后缀的请求,返回json数据的更多相关文章

  1. shiro异步请求返回JSON响应

    shiro异步请求返回JSON响应 需求1:当shiro请求资源,但是没有进行认证时,默认是进行重定向,现在需要返回JSON响应.注意异步请求,服务器重定向后,ajax拿到的是浏览器重定向后的到的页面 ...

  2. springmvc通过ajax异步请求返回json格式数据

    jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#usernam ...

  3. 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法

    在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...

  4. AJAX请求,返回json进行页面绑值

    AJAX请求,返回json进行页面绑值 后台 controller @RequestMapping(value = "backjson.do",method=RequestMeth ...

  5. SpringBoot 拦截器获取http请求参数

    SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 目录 SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 获取http请求参数是一种刚需 定义拦截器获取请求 为 ...

  6. spring 4.x下让http请求返回json串

    当前很多应用已经开始将响应返回为json串,所以基于springframework框架开发的服务端程序,让响应返回json字符串成为了一种常用手段. 这里介绍一下如何在spring-MVC框架下方便快 ...

  7. ajax请求返回json字符串/json对象 处理

    1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...

  8. 使用jQuery发送POST,Ajax请求返回JSON格式数据

    问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...

  9. 学习网络请求返回json对应的model

    原来泛型可以这样用: 网络返回基类,返回一个code,msg,body,其中body不确定,所以,我们把它写成泛型 import org.json.JSONObject; /** * 网络请求的基类 ...

随机推荐

  1. 2019-2020-1 20199301《Linux内核原理与分析》第三周作业

    操作系统是如何工作的 本章目标是在mykernel的基础上编写一个简单的内核 一.学习笔记 1.计算机的三个法宝:a.存储程序计算机:b.函数调用堆栈:c.中断 存储程序计算机(所有计算机的基础性的逻 ...

  2. WCF之MSMQ消息队列

    一.MSMQ简介 MSMQ(微软消息队列)是Windows操作系统中消息应用程序的基础,是用于创建分布式.松散连接的消息通讯应用程序的开发工具. MSMQ与XML Web Services和.Net ...

  3. unittest----assert断言的使用

    unittest的官发文档链接:https://docs.python.org/2.7/library/unittest.html#unittest.TestCase 先介绍下unittest的基本使 ...

  4. js字符串解析与转换成数字

    解析允许字符串中含有非法数字字符,解析按从左至右的顺序,如果遇到非数字字符就停止.而转换不允许出现非数字字符,否则会失败并返回NaN

  5. SpringAOP进阶

    利用代理工厂实现增强 com.Spring.proxyfactory中的IdoSomeService package cn.spring.proxyfactory; public interface ...

  6. 小白学习.NET的初期经验

    对于.NET,刚开始确实很迷茫,确实,对于程序员这种职业我不是很了解,我以前是学数控的 ,对于我心目中的程序而言,程序就是我常用的那些代码,毕竟做了四五年的数控,同样都是程序,给我的了解就是都是代码: ...

  7. Crontab 定时任务格式参数

    crontab 定时执行 任务 格式: * * * * *-) 小时(-) 日(-) 月份(-) 星期(-6) 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条 ...

  8. break,continue,return的区别 x

    这三个东西特别坑,一定要记准了!! 1)break     直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试.他只能跳出一层循环: 注意:如果你的循环是嵌套循环,那么 ...

  9. 【MongoDB】查询字段对应的数组中包含某个值

    在MongoDB操作的时候,我们可能会遇到查询[字段对应的数组中包含某个值]的数据,查询语句如下,假设表名为user. 示例1 数据 { id: 1, state_arr: [ "123&q ...

  10. ssh刚连接到其他服务器就闪退的问题。Connection to slave1 closed

    问题现象: 由于最近在docker上部署hadoop,最开始搭建完以后,ssh是正常的,当我重启系统以后就出现了上面的这个问题 解决: 修改配置文件:/etc/ssh/sshd_config 把Per ...