来自ResponseEntity <String>的错误答案

时间:2019-07-25 12:21:29

标签: java spring string spring-mvc

快速提问。

我有一个像这样的小型控制器:

@Controller
@RequestMapping("/logout")
public class AuthenticationController
{
    public static final String LOGOUTED = "logouted";

    @Resource(name = "requireHardLoginEvaluator")
    private RequireHardLoginEvaluator requireHardLoginEvaluator;

    @RequestMapping(value = "/status", method = RequestMethod.GET)
    public ResponseEntity<String> status(final HttpServletRequest request, final HttpServletResponse response)
    {
        if (!requireHardLoginEvaluator.evaluate(request, response))
        {
            return new ResponseEntity<String>(LOGOUTED, HttpStatus.OK);
        }

        return new ResponseEntity<String>(HttpStatus.UNAUTHORIZED);
    }

当我调试它时,变量new ResponseEntity<String>(AUTHENTICATED, HttpStatus.OK)具有很好的价值-> <200 OK,authenticated,{}>,但是当我在Web浏览器中寻找它时,/ status的响应是:“ authenticated” with双引号。

我的问题是:是什么导致authenticated"authenticated"实例中变成带有双引号的字符串,例如ResponseEntity

1 个答案:

答案 0 :(得分:1)

因为返回的类型是String。具有您在此处定义ResponseEntity<String>的类型的Spring Return。您可以返回设置为ResponseEntity<?>的任何类型。

Ps:为什么在类中使用@Controller而不是@RestController?