@RequestMapping用于映射url到掌握器类的一个特定处理程序方法。可用于方法或者类上面。也便是可以通过url找到对应的方法。
@RequestMapping有8个属性。
value:指定要求的实际地址。
method:指定要求的method类型(GET,POST,PUT,DELETE)等。
consumes:指定处理要求的提交内容类型(Context-Type)。
produces:指定返回的内容类型,还可以设置返回值的字符编码。
params:指定request中必须包含某些参数值,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才让该方法处理要求。
@getMapping与@postMapping是组合表明。
@getMapping = @requestMapping(method = RequestMethod.GET)。
@postMapping = @requestMapping(method = RequestMethod.POST)。
@GetMapping是一个组合表明,是@RequestMapping(method = RequestMethod.GET)的缩写。该表明将HTTP Get 映射到 特定的处理方法上。
Difference between @GetMapping & @RequestMapping:
@GetMapping does not support the consumes attribute of @RequestMapping.
SpringBoot 中@GetMapping和@PostMapping测试同一方法,为什么用@Get类型的表明可以访问成功,而@PostMapping用浏览器访问失落败
@Controller
public class JspController {
@PostMapping("/index")
public String index(Model model){
model.addAttribute("msg","springboot访问JSP页面");
return "index";
}
}
用@PostMapping表明,在浏览器输入访问地址时,会涌现
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Feb 20 09:50:06 CST 2019
There was an unexpected error (type=Method Not Allowed, status=405).
Request method ‘GET’ not supported
而用@GetMapping表明,可以访问成功
通过浏览器的地址栏输入地址,所访问的URL都是get要求,因此如果以post定义方法,那么由于要求与实现的不一致,会返回405缺点。
浏览器发送Get要求有
1.直接在地址栏中输入地址
2.点击链接
3.表单默认提交办法
浏览器发送post要求有:
1.将表单的method设置为post