8. SpringMVC - 请求数据 - 参数绑定注解@requestParam

先来看下 这个注解是个啥:当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定。

注解@RequestParam还有如下参数可以使用:

value:与请求参数名称 

required:此在指定的请求参数是否必须包括,默认是true,提交时如果没有此参数则报错 

defaultValue:当没有指定请求参数时,则使用指定的默认值赋值

有这么个 表单POST:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/ok" method="post">
    <input type="text" name="name1">
    <input type="submit">
</form>
</body>
</html>

然后我们 控制器是这样的:

package com.bihu.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {
    @RequestMapping("/ok")
    @ResponseBody
    public void post(String name){      //注意这里是 name
        System.out.println(name);
    }
}

会发现  name 和 name1  不匹配 虽然成功交互 但是打印出来的是null ,那么@RequestParam 注解就登场了:

package com.bihu.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {
    @RequestMapping("/ok")
    @ResponseBody
    public void post(@RequestParam(value = "name1") String name){      //注意这里绑定了 name1 name就没用了啊!
        System.out.println(name);
    }
}

你参数绑定了 name1  那么 你在表单哪里 name = name 就会报错哦!!!! 所以 两个方式 你选一个。 这点千万注意啊。


required:  这个属性的意思是说 如果你请求没有带任何的请求数据【为空】,那么这个属性为true 的话【默认是 true】,那么会报错,如果为false 则允许 这样做 但是参数肯定是null的.

package com.bihu.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {
    @RequestMapping("/ok")
    @ResponseBody
    public void post(@RequestParam(value = "name1",required = false) String name){
        System.out.println(name);
    }
}

defaultValue 如果是第二种 没有任何的请求数据 他就会用这个 defaultaValue 进行填充:

package com.bihu.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class TestController {
    @RequestMapping("/ok")
    @ResponseBody
    public void post(@RequestParam(value = "name1",required = false,defaultValue = "请求为空 我是默认值!") String name){
        System.out.println(name);
    }
}

完.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值