快速提问。
我有一个像这样的小型控制器:
@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
?
答案 0 :(得分:1)
因为返回的类型是String。具有您在此处定义ResponseEntity<String>
的类型的Spring Return。您可以返回设置为ResponseEntity<?>
的任何类型。
Ps:为什么在类中使用@Controller而不是@RestController?