如何使用@RestController将简单的布尔值作为纯文本返回?

时间:2015-11-26 13:02:36

标签: java spring rest spring-restcontroller spring-rest

我只想返回文字" true"通过一个简单的servlet:

@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public Boolean isValid() {
    return true;
}

结果:406 - The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

为什么呢?我怎样才能返回那个简单的值? 如果我将返回类型更改为String "true",则没有区别。

2 个答案:

答案 0 :(得分:3)

Spring MVC默认转换器似乎无法将Boolean转换为text/plain。只有当我尝试使用Accept: application/json的请求时才有效。

我建议将返回类型更改为String,因为无论如何它都是您要返回的内容。

@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public String isValid() {
    return Boolean.TRUE.toString();
}

这样,没有Accept标头的请求就可以正常工作,但如果需要,您还可以添加Accept: text/plain

答案 1 :(得分:0)

@RequestMapping(value = "/", method = RequestMethod.GET)
@ResponseBody
public String isValid() {
   return "true";
}

并删除/设置正确的标头值到您的请求的accept标题。

详细了解http状态代码here