Spring MVC URL映射方法

1.可以使用@RequestMapping注解来映射URL

    @ResponseBody
    @RequestMapping(value = "/hello")
    public String hello(){
        return "Hello Spring Boot";
    }

RequestMapping有多个属性来进一步匹配HTTP请求到Controller方法,分别是:value(请求的URL路径),method(HTTP请求方法例如POST、DELETE、PUT、GET等),consumes(允许的媒体类型,对应于请求的HTTP的Content-Type),produces(相应的媒体类型,对应于HTTP的Accept字段),params(请求的参数),headers(请求的HTTP头的值)。

2.URL路径匹配

value支持简单的表达式匹配;通配符匹配;URL映射也可以使用${}来获得系统的配置或者环境变量,通常用于Controller路径是通过配置文件设定的情况。

3.method匹配

可以在@RequestMapping注解中的method属性里配置或者直接使用新的注解@GetMapping、@PostMapping等来代替。

4.consumes匹配

属性consumes意味着请求的HTTP头的Content-Type媒体类型与consumes的值匹配,才能调用此方法。

例如:

    @ResponseBody
    @GetMapping(value = "test_consumes",consumes = "application/json")
    public String forJson(String name){
        return "123"+name+"321";
    }

该段程序无法运行,会提示状态415错误,即由于媒介类型不被支持,服务器不会接受请求。

修改错误可以去掉consumes属性限制或者通过Ajax方法调用此段控制方法。

    @ResponseBody
    @PostMapping(value = "/test_consumes",consumes = "application/json")
    public String forJson(@RequestBody User user){
        return "123"+user.getName()+"321"+user.getId();
    }

    @GetMapping(value = "/test_html")
    public String testHtml(){
        return "test_ajax";
    }
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>ajax测试</title>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script>
        function loadQ() {
            var dataValue = JSON.stringify({
                name: 'bzy',
                id: '3'
            });
            $.ajax({
                async: false,
                cache: false,
                type: "post",
                url: "/test_consumes",
                contentType: "application/json",
                data: dataValue
            });
        }
    </script>
</head>
<body>
<button type="button" onclick="loadQ()" th:text="aaa"></button>
</body>
</html>

 5.produces匹配

属性produces属性对应HTTP请求的Accept字段,只有匹配得上的方法才能被调用。

6.params和header匹配

可以从请求参数或HTTP头中提取值来进一步确定调用的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值