SpringMVC参数注入方式

  • Post author:
  • Post category:其他



一、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));
        }

}



版权声明:本文为liuguodong1413原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。