springboot拦截json后缀的请求,返回json数据
需求:请求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注释中有点.英文句号的问题(忽略英文句号后面的后缀)
springboot拦截json后缀的请求,返回json数据的更多相关文章
- shiro异步请求返回JSON响应
shiro异步请求返回JSON响应 需求1:当shiro请求资源,但是没有进行认证时,默认是进行重定向,现在需要返回JSON响应.注意异步请求,服务器重定向后,ajax拿到的是浏览器重定向后的到的页面 ...
- springmvc通过ajax异步请求返回json格式数据
jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#usernam ...
- 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法
在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...
- AJAX请求,返回json进行页面绑值
AJAX请求,返回json进行页面绑值 后台 controller @RequestMapping(value = "backjson.do",method=RequestMeth ...
- SpringBoot 拦截器获取http请求参数
SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 目录 SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 获取http请求参数是一种刚需 定义拦截器获取请求 为 ...
- spring 4.x下让http请求返回json串
当前很多应用已经开始将响应返回为json串,所以基于springframework框架开发的服务端程序,让响应返回json字符串成为了一种常用手段. 这里介绍一下如何在spring-MVC框架下方便快 ...
- ajax请求返回json字符串/json对象 处理
1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...
- 使用jQuery发送POST,Ajax请求返回JSON格式数据
问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...
- 学习网络请求返回json对应的model
原来泛型可以这样用: 网络返回基类,返回一个code,msg,body,其中body不确定,所以,我们把它写成泛型 import org.json.JSONObject; /** * 网络请求的基类 ...
随机推荐
- 《hello--world团队》第五次作业:项目需求分析改进与系统设计
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验九 团队作业5-团队项目需求改进与系统设计 团队名称 <hello--worl ...
- AJAX学习笔记——JSON
JSON基本概念 1.JSON : JavaScript对象表示法( JavaScript Object Notation ) 2.JSON是存储和交换文本信息的语法,类似XML.它采用键值对的方式来 ...
- java中为什么不能通过getClass().getName()获取父类的类名
例如: class A{} public class B extends A{ public void test(){ System.out.println(super.getClass().getN ...
- AOP(execution表达式)
作者:门罗的魔术师 推荐:y-yg 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式 ex ...
- BZOJ2155(?) R集合 (卡特兰数)
Orz Freopen大佬 CODE fac = [0]*1005 def C(n, m): return fac[n] // fac[m] // fac[n-m] n = int(input()) ...
- Copy Books II
Description Given n books and each book has the same number of pages. There are k persons to copy th ...
- Python3 报错'latin-1' codec can't encode character 解决方案
Python3 报错'latin-1' codec can't encode character 解决方案 在更新数据库操作时,报错: UnicodeEncodeError: 'latin-1' co ...
- svn优点跟缺点?
优点: 1.svn优点:集中式管理,管理方式在服务端配置好,客户端只需要同步提交即可,使用方便,操作简单,很容易就可以上手 2.在服务端统一控制好访问权限,利用代码的安全管理. 3.所有的代码以服务端 ...
- springboot整合springsecurity遇到的问题
在整合springsecurity时遇到好几个问题,自动配置登录,下线,注销用户的操作,数据基于mybatis,模版引擎用的thymeleaf+bootstrap. 一.认证时密码的加密(passwo ...
- mysql 的编写顺序和执行顺序
编写顺序 S..F..W..G..H..O 执行顺序 F..W..G..H..S..O from →join →on →where →group by→having→select→order by→l ...