SpringMVC参数注入方式

本文详细介绍了SpringMVC中@RequestParam和@RequestBody注解的使用方法。通过具体的前端JavaScript示例和后端Java代码,展示了如何处理不同类型的HTTP请求参数,包括普通参数、文件上传及JSON格式的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SpringMVC 之 @RequestParam

对应 aplication/x-www-form-urlencoded、multipart/form-data方式
js:
$.post("/xxx/params", {name: "Liu", age: 31});

java:
/**
 * value="$paramName",单一传参数
 */
@RequestMapping("/params")
public Object postParams(
              @RequestParam(value="name") String name,
              @RequestParam(value="age") int age) {
       return null;
}
js:
$.post("/xxx/params", {name: "Liu", age: 31});

java:
/**
 * value 默认为参数名
 */
@RequestMapping("/params")
public Object postParams(
              @RequestParam String name,
              @RequestParam int age) {
       return null;
}
js:
$.post("/xxx/params", {name: "Liu", age: 31});

java:
/**
 * @RequestParam 标注到Map 类型上,接收所有参数
 */
@RequestMapping("/params")
public Object postParams(
              @RequestParam Map<String, Object> params) {
       return null;
}
html:
<input type="file" name="file" />


java:
/**
 * @RequestParam 标注到MultipartFile 类型上,接收文件
 */
@RequestMapping("/params")
public Object postParams(
              @RequestParam MultipartFile file) {
       return null;
}

二、SpringMVC 之 @RequestBody

对应 aplication/json方式
 js:
 $.ajax({
       url: "${base}/test/json",
       data:JSON.stringify({"name": "Liu", "age": 31}), 
       // 1 application/json 方式需要转化成json字符串
       type: "POST",
       dataType:'json', // 2 返回值类型
       contentType: 'application/json', // 3 
       success:function (data) {
           console.log(data);
       },
       error:function(err){
           console.log(err);
       }
});

java:
@RequestMapping(value = "/json", method = RequestMethod.POST)
@ResponseBody
public Object json(
       @RequestBody // 4
       HashMap<String, Object> data 
       // 5 HashMap类) { 

        logger.debug(data);
        for(String key : data.keySet()) {
            logger.debug(key);
            logger.debug(data.get(key));
        }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值