@RestControllerAdvice和@RestController返回不一样的格式 5C

springboot版本 2.1.1.RELEASE
ControllerAspect.java代码
@RestControllerAdvice
public class ControllerAspect {

@ExceptionHandler(Exception.class)
public Object dispose(final HttpServletRequest request, final HttpServletResponse response,
        final Exception ex) {

    Map<String,String> map = new HashMap<String,String>();
    map.put("mgs", ex.getMessage());
    map.put("code", "9999");
    return map;

}

}

UserController代码:
@RestController
public class UserController {

@RequestMapping(value = "/test.json", method = { RequestMethod.POST,
        RequestMethod.GET },produces = "application/json")
public Object refreshCache(final HttpServletRequest request, final String token) {
    Map<String,String> map = new HashMap<String,String>();
    map.put("mgs", "success");
    map.put("code", "0000");
    return map;
}

}
正常情况下:访问http://127.0.0.1:8080/test.json返回数据为格式是json
{"code":"0000","mgs":"success"}

在UserController里面抛出异常后
@RestController
public class UserController {

@RequestMapping(value = "/test.json", method = { RequestMethod.POST,
        RequestMethod.GET },produces = "application/json")
public Object refreshCache(final HttpServletRequest request, final String token) {
    Map<String,String> map = new HashMap<String,String>();
    map.put("mgs", "success");
    map.put("code", "0000");
    System.out.println(1/0);
    return map;
}

}
返回xml格式

0

2个回答

返回的还是json啊

0

你在pom.xml加上

<groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-xml-provider</artifactId>
        </dependency>

后就是xml了
@RequestMapping里面配置的application/json不起作用

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在RestController中获取各种相关信息的方法
在RestController中获取各种相关信息的方法.pngnnn n nn
捕获spring RestController中的异常,并记录日志
在使用spring的时候,如果Controller中抛出异常,会被spring显示在客户端界面,而日志中一般没有记录。客户端对异常的显示也是经spring处理后的信息,没有堆栈,这不方便找错和改错。可以通过RestControllerAdvice注解定义一个异常处理类来解决这个问题。代码如下注:也可以不继承ResponseEntityExceptionHandler类,此处继承只是省了一些通用异常...
spring3 mvc rest返回中文乱码? 解决问题
1:@RestControllernpublic class ApiRestController {n protected Logger logger = LoggerFactory.getLogger(getClass());n @Autowiredn private JfAccountService jfAccountService;nnn @Autowiredn private JfDeta
怎么使用纯注解配置并用@RestController注解返回json和xml格式的数据以及404错误和406错误怎么处理
首先,我们都知道@RestController其实是一个组合注解,他是@Controller和@ResponseBody的n组合,他可以在控制器当中返回json和xml格式的数据,下面就让我们来看看具体的流程吧。n首先我们要导入maven依赖,这里我就全部贴上来了了。nn&lt;properties&gt;n &lt;!-- Spring版本号 --&gt;n &lt;...
使用了@RestController,对返回值统一处理
@ControllerAdvicenpublic class RestControllerResponseAdvice implements ResponseBodyAdvice&amp;lt;Object&amp;gt; {nn @Overriden public boolean supports(MethodParameter returnType, Class&amp;lt;? extends Http...
Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json
需求rn在构建RestFul的今天,我们一般会限定好返回数据的格式比如:rn{rn  "code": 0,rn  "data": {},rn  "msg": "操作成功"rn}rn但有时却往往会产生一些bug。这时候就破坏了返回数据的一致性,导致调用者无法解析。所以我们常常会定义一个全局的异常拦截器。rn注意:ControllerAdvice注解 只拦截Controller 不回拦截 Interc
如何控制全局异常处理器返回异常的格式(xml还是json)?
(HttpServletRequest)req.setAttribute(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, Collections.unmodifiableSet(Arrays.asList(MediaType.TEXT_XML).stream().collect(Collectors.toSet())));nn这里主要的作用在于,当...
@RestController是怎么回事?它与@Controller的区别是什么?
@RestController是SpringMvc4.0以后新加的属性,它相当于@ResponseBody + @Controller 结合使用。
@RestController 注释下的重定向探讨
@RestController 注释下的重定向探讨nn背景: 在工作中遇到需要@RestController 内部的方法直接进行重定向或者转发n我们知道@RestController注解后,方法默认返回json。但是如果返回ModelAndView 则依然按ModelAndView曾经的逻辑走,那么springmvc内部的逻辑是如何走的呢?nnHandlerMethodReturnValueHa...
@RestController 返回数据格式 总结
以下总结基于本人手敲实验结论,如有不对,欢迎留言讨论指正nn本文以application/xml,application/json两种数据格式为例说明nn以下两点为基础nn1.前端请求Header的Accept参数指定返回数据格式(最明确的优先匹配)   nn当你有如下Accept头:nn①Accept:text/html,application/xml,application/jsonnn   ...
@RestController对象中时间属性格式的统一处理方式
@RestController对象中时间属性格式的统一处理方式n在项目中经常要对时间格式处理完成后统一返回前段页面,正常情况下java中Date属性直接转化为json显示的是时间戳n这里主要是针对springboot项目中处理时间方式n测试对象nn结果输出对象ResultDatenncontrollernn没添加时间处理nn需要用到的配置只要在application.properties中添加n#...
controller中使用@ResponseBody注解,返回数据时出现中文乱码
SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1rn在Spring的org.springframework.http.converter.StringHttpMessageConverter类中可以看到如下代码:rnrnrnpublic static final Charsetrn DEFAULT_CHARSET = Cha
REST(三)处理HTTP状态码、异常和响应头
REST(三)处理HTTP状态码、异常和响应头n之前的内容只是讨论了正确的处理结果,而没有讨论当没有找到资源时的处理或者发生异常时的处理。当发生资源找不到或者处理逻辑发生异常时,需要考虑的时返回给客户端HTTP抓鬼你太吗和错误消息的问题。为了简化这些开发,Spring提供了实体封装类ResponseEntity和注解@ResponseStatus。ResponseEntity可以有效封装错误消息和...
Controller全局控制返回对象为null时自动过滤掉不返回
最近在做一个新的项目,所有的东西,从框架开始,都是一点点搞起来的,很多基础设施不完善,在controller层返回对象包含有null的字段就属于其中的一种.nn倘若返回的对象中不能过自动过滤掉null的属性,不仅是对流量的一种消耗,也给前段使用时带来麻烦,乱糟糟的,一点不简洁.nn在开发中为了解决这种问题,主要采用了两种解决方案,nn第一,使用注解nn第二,使用全局的xml配置方式nn这里注解比较...
SpringBoot引用Eureka导致返回结果由json变为xml解决方案
返回的XMLnn最近搞Eureka的时候 项目的返回从Json变为了Xml,像下面这种nnnn原因nn在我的SpringBoot项目中集成了EurekaServer,又需要jackson-dataformat-xml这个依赖 n n他是干嘛的呢? n他可以将实体转换为xml也可以转换为json,根据发起请求的request头中Accept来决定,例如我下面这个:nnAccept: text/htm...
Spring注解RestController标注之后,通过返回ModelAndView可以跳转页面
spring4.1中添加了@RestController注解很方便,集成了@ResponseBody注解,无需再在每个方法前添加了..但是却发现个问题..之前用@Controller注解的时候经常会如下所示的返回到视图页面index.jsp:rnrnrn @RequestMapping(value=&quot;/tologin&quot;, method=RequestMethod.GET)rn publ...
springboot在restcontroller下返回文本类型
最近本人做一个接口,接口需要用post application/x-www-form-urlencoded发送请求,返回类型是text/plain,刚开始的思路毫无思路,于是在网上找到thymeleaf,其作为springboot组成组件,可以在controller模式下返回文本类型,即在html中打开,可是使用过后发现其对接口post请求无法做出正确的相应,后面解决方式是利用了ResponseE...
Spring的ResponseBody和RestController注解返回的json数据不是json字符串,而是json对象...
n n n 今天在上班的时候,因为要涉及到springmvc写json接口,通过ajax写数据到前端,然后就发现一个很神奇的事情。n当我使用@RestController或者@ResponseBody的时候,前端拿到的数据如下图:nnnnnjson.pngnn很显然这是一个json对象,而不是一个json字符串。n后台代码如下:n@RestControllernpub...
使用@ControllerAdvice实现发生异常时返回json错误信息
前言本文介绍spring MVC的自定义异常处理,即在Controller中抛出自定义的异常时,客户端收到更友好的JSON格式的提示,而不是常见的报错页面,方便移动端的处理。 n注解介绍@ControllerAdvice注解,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强,可以用来通过结合注解@ExceptionHanlder, 来定义具体的异常处理, 以及返回的结果。@Co
搭建spring mvc rest返回json,xml遇到的问题,及解决办法
      在搭建spring mvc rest环境时遇些问题:rn问题1:rn      当Controller返回Object时,请求json数据返回的内容和我期望的不一致,例如返回的Object是User类有个name属性,原本希望返回{&quot;name&quot;:'姓名'}这样的数据,结果返回{&quot;user&quot;:{&quot;name&quot;:&quot;姓名&quot;}}。rn问题原因:rn      org.springframewor...
Restful风格Controller书写要点:响应码返回
请求类型与状态码n 请求类型n controller中的操作n 返回的状态码n postn 增加n 201 created | 500 server errorn deleten 删除n 204 no content |500n putn 修改n 204 no content|400 bad request|500n getn 查询n 200  ok...
SpringBoot框架中REST接口的异常处理方法
一. HTTP状态码n100 到199 的状态码代表信息,描述对于请求的处理。n200 到 299 的状态码表示客户端发来的请求已经被接收并正确处理。n300 到 399 的状态码表示客户端需要进一步的处理才能完成请求,比如重定向到另一个地址。n400 到 499 的状态码表示客户端的请求有错误,需要修正。404就是这种情况。n500 到 599 的状态码表示服务器在处理客户端请求时发生了内部错误。
@ControllerAdvice拦截异常返回数据
n/**n * &amp;lt;&amp;gt;n * &amp;lt;错误拦截 返回json给调用方&amp;gt;n *n * @Author jason_wn * @Date 2019/1/9 0009 21:27n * @seen */n@ControllerAdvicenpublic class ExceptionHandlerAdvice {n private static final Logger LOGGE...
springmvc 返回json格式中date的处理
springmvc 返回json格式中date的处理n在使用springmvc 的过程中,直接返回json对象的时候,如果包含date类型的对象,默认转换成json的时候是转换成long型的格式,不是我们常用的"yyyy-MM-dd HH:mm:ss"格式。n这时候需要做一个转换,比较喜欢下面的方式,直接在实体类中注解:n@JsonFormat(pattern = "yyyy-MM-dd H
Spring MVC 实现RESTful 返回JSON格式数据
在Java后端的日常开发中,系统间调用通过使用json格式数据,本文将向你展示如何将对象转换成json格式并通过Spring MVC框架返回给调用者。开发工具配置nSpring 4.2.7.RELEASEnJackson 2.6.7nJDK 1.7nIntelliJ IDEA 15nMaven 3.3.9n1、maven依赖<project xmlns="http://maven.apache.or
spring mvc实现Restful返回json格式数据
在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。rnrn使用技术及环境:rnrnSpring 3.2.2.RELEASEJackson 1.9.10JDK 1.6Eclipse 3.6Maven 3rnrnPS:在spring 3 中,要输出json数据,只需要添加Jackson 库到你的classpath。rnrn1、项目依赖rnrnspring和
spring @restcontroller 入坑 (请求不跳转,返回字符串)
在SpringMVC中,遇到一个场景,不需要进行页面的跳转,只需要单纯的返回数据给请求URL的页面,之前都是return &quot;index&quot;;用来进行页面的跳转,瞬间蒙蔽。方法如下:单纯的定义接口,注入HttpServletResponse 参数,方法中调用它的getWriter().print(需要返回的数据)即可返回数据到请求的页面。具体代码如下nnnn修改成@Controller 即可...
字符串转换成java对象然后通过@RestController返回json对象
npublic List&amp;lt;ad&amp;gt; fanhui(){nnObjectMapper mapper = new ObjectMapper();nnString jsonString = &quot;{\&quot;name\&quot;:\&quot;Mahesh\&quot;, \&quot;age\&quot;:21}&quot;;nn return mapper.readValue(jsonString,new TypeReference&amp;lt;List&amp;lt;
RestController类注解以后还需要跳页面
@RestControllernpublic class LoginController {nn @GetMapping(&quot;/authentication/require&quot;)n public ModelAndView require() {n return new ModelAndView(&quot;ftl/login&quot;);n }n}
springboot统一restful返回值及统一异常处理
统一返回restful数据:nn首先确定需要返回的json数据的格式,定义一个统一返回类nnnpackage com.peixun.Response;nnimport com.peixun.enums.UnicomResponseEnums;nn/**n * @program: 测试n * @description:返回的JSON数据结构标准n * @author: n * @create: 20...
spring mvc返回json格式到客户端,并且在Controller中自动将对象转换为json
在spring mvc中使用@RestController来写restful风格的服务的时候,出现了一下的错误。n客户端显示406的状态码,表示服务器返回的是不可接受的类型。这个问题主要是在spring-mvc的配置中没有配置json的转换器。n配置如下:<mvc:annotation-driven>n <!-- 处理Controller返回字符串数据是乱码问题 -->
springboot-Rest接口返回统一格式数据
springboot-Rest接口返回统一格式数据rn为什么要统一格式?rn我们使用SpringBoot编写接口的时候,最好是返回一个统一格式的JSON,该格式包含错误码,附带信息,以及携带的数据。这样前端在解析的时候就能统一解析,同时携带错误码可以更加容易的排查错误。rn定义统一格式ApiResultrnpublic class ApiResult {rn /**rn * 错误码,对应{@li...
解决SpringMVC 中@RestController 返回日期格式为时间戳
问题描述:解决SpringMVC 中@RestController 返回日期格式为时间戳nn解决方式: 配置springMVC配置文件 加入以下配置nnn&lt;mvc:annotation-driven&gt;n &lt;mvc:message-converters&gt;n &lt;bean class="org.springframework.http....
Spring 解决RestController返回枚举对象时输出的是枚举的名称而不是json字符串
举个例子:nprivate enum LoginResult {n SUCCESS(0, &quot;成功登入&quot;),n USER_NOT_FOUND(1, &quot;未找到用户&quot;),n INCORRECT_PASS(2, &quot;密码错误&quot;),n INCORRECT_CODE(3, &quot;验证码错误&quot;);nn private final int code;n private final S...
Rest输入输出子节流
直接上代码服务端:@RestControllernpublic class Api {n @RequestMapping(value = &quot;/api&quot;,method = RequestMethod.POST)n public byte[] getbytes(HttpServletRequest request) throws IOException {n byte[] inb...
spring4.1 请求rest接口406问题解决(转换JSON)
前文说明,本来项目使用的是springmvc 的模式,然后接口都是使用的是 n@Controller + @ResponseBody n配置json转换的代码是 <beann class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">n <property
RestController有相同类名引起的异常(其它类型的bean也会有这种问题)
RestController有相同类名引起的异常(其它类型的bean也会有这种问题)nn@RestControllern@RequestMapping("/testnum4")npublic class TestnumRest {nRestController有相同类名引起的异常(其它类型的bean也会有这种问题):org.springframework.beans.factory.BeanDef...
使用@ControllerAdvice如何返回给前端对应错误码
@ControllerAdvice可以捕获spring应用下面未被捕获异常,下面是常见代码:nn @ExceptionHandler(value = Exception.class)n @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)n public String errorHandler(Exception ex) {n ...
SpringBoot基于@ControllerAdvice配置全局异常处理
异常处理类:nnnnpublic class GlobalException extends RuntimeException{n private static final long serialVersionUID = 1L;n private CodeMessage cm;n public GlobalException(CodeMessage cm){n s...
关于springboot返回类型设置ContentType属性
最近做富文本编辑器ueditor,遇到一个问题:加载JS文件报错,Refused to execute script from because its MIME type (text/plain) is not executable, and strict MIME type checking is enabled...这个意思是说,动态加载js文件时返回Content-Type为text/pla...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链平台价格不一样 数据库课程设计格式