使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
若返回json等内容到页面,则需要加@ResponseBody注解。
如果你的代码写的如下:
@Controller
@RequestMapping(value = "/test",method = RequestMethod.GET)
public class TestController {
@RequestMapping(value = "/a",method = RequestMethod.GET)
public String probe(){
System.out.println("good");
return "success";
}
}
实际上以上代码,是可以在控制台打印出good来的,但是postman中却显示了404
{
"timestamp": 1539250958530,
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/test/a"
}
原因就是没有success.jsp页面,所以报错。解决办法:在RequestMapping中加上@ResponseBody就可以解决。
当然,你在类上使用@RestController也解决了这个问题,返回了success.
@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面