您的位置:首页 > 编程语言 > Java开发

SpringMVC如何区分返回页面和返回数据?@ResponseBody注解

2017-09-02 21:12 447 查看
今天面试的时候面试官问了一个问题:SpringMVC如何区分控制器返回的是页面还是数据(比如JSON格式的数据)?一时没想起来怎么回答,回来看了一下自己的代码,原来就是一直在写的@ResponseBody注解!回来总结一下。

1.@ResponseBody注解作用

该注解用于将Controller方法返回的对象,通过适当的HttpMessageConverter转化为指定格式后,写入到Response对象的body数据区。

使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json,xml等)。

2.实例

@Controller
@RequestMapping("/user")
public class UserController {

/**
* 返回login登陆页面
* */
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(HttpServletRequest request){

return "login";
}

/**
* 返回"loginSuccess"字符串
* */
@RequestMapping(value="/loginSuccess",method=RequestMethod.GET)
@ResponseBody
public String loginSuccess(HttpServletRequest request){

return "loginSuccess";
}

/**
* 返回"loginError"字符串
* */
@RequestMapping(value="/loginError",method=RequestMethod.GET)
public @ResponseBody String loginError(HttpServletRequest request){

return "loginError";
}
}
上面的代码中:

login方法返回login登陆页面

loginSuccess方法返回字符串"loginSuccess"

loginError方法返回字符串"loginError"

三个方法的返回对象都是String类型的,SpringMVC框架是如何区分返回的是页面还是字符串呢?这就是@ResponseBody注解的作用了。

PS:自己经验尚浅,上述如有问题,请各位指教!感谢!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐