需求:请求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. 大数据之路week06--day07(Linux中的mysql的离线安装)

    这里我提供 服务端和客户端的两个jar包的百度云,也是我使用的 链接:https://pan.baidu.com/s/11a3LT-ENZ8n9IF19-VjmWA 提取码:bdls 离线安装Mysq ...

  2. LightOJ-1020-A Childhood Game(博弈)

    链接: https://vjudge.net/problem/LightOJ-1020 题意: Alice and Bob are playing a game with marbles; you m ...

  3. Vue多语言支持

    i18n插件实现多语言支持,本文以中英文为例记录一下配置过程. 1.配置 1.1安装:npm install vue-i18n --save 1.2创建中英文配置项文件 src/lang目录下创建以下 ...

  4. postgresql slow sql report 慢查询报告

    其实也不完全算PostgreSQL的技巧,应该算是SHELL技巧. 首先要配置好postgresql.conf,让PG记录下慢查询,并且日志固定格式,如下: log_destination = 'cs ...

  5. 坑爹的IE8

    1.不能用trim(),要用$.trim()    var aa = $("#id").val().trim()  这样素不行的,要变成这样Jquery的方式 var aa = $ ...

  6. 数据库删除数据 truncate 与 delete

    delete from table where 直接删除表中的某一行数据,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作.所以delete相比较truncate更加占用资源,数据 ...

  7. Count on a tree 树上主席树

    Count on a tree 树上主席树 给\(n\)个树,每个点有点权,每次询问\(u,v\)路径上第\(k\)小点权,强制在线 求解区间静态第\(k\)小即用主席树. 树上主席树类似于区间上主席 ...

  8. 小象和老鼠 DP

    小象和老鼠 DP \(N*M\)的网格图,格子\((i,j)\)有\(A_{i,j}\)个老鼠,问小象从左上角\((1,1)\)走到右下角\((N,M)\)看到的最少老鼠.小象可以看见老鼠,当且仅当老 ...

  9. Java 8的Time包常用API

    Date.Canlender.SimpleDateFormat类在新的Time包面前几乎没有优势 日期LocalDate,时间LocalTime,日期时间LocalDateTime. 时区ZoneId ...

  10. python常用函数2

    2.reduce()函数 reduce() 函数也是python内置的一个高阶函数.reduce()函数接收的参数和 map()相似,一个函数   f ,一个list,但行为和  map()不同,re ...