Spring MVC 形参类型

spring mvc 形参类型

1 没有占位符号的,形参的名字为参数的名称 请求路径为:organtrans/t1/t5?a=1(a为形参的的名称必须一致)

@RequestMapping("/t5")
@ResponseBody
public String test5(int a)
{
return String.valueOf(a);
}

2 有占位符号的 请求路径为:organtrans/t1/t5/1/10(根据类型匹配方法)

@RequestMapping("/t1/{pageIndex}/{pageSize}")
public @ResponseBody String test1(@PathVariable("pageIndex") Integer pageIndex,
@PathVariable("pageSize") Integer pageSize) {
return MessageFormat.format("pageIndex{0},pageSize{1}", pageIndex, pageSize);

}

3 形参为Map的 这中类型一般为post 请求方式 请求参数需要转换为json 有对应的key 和value

@RequestMapping("/t2")
@ResponseBody
public String test2(@RequestBody Map<String, String> parameterMap) {
if (MapUtils.isNotEmpty(parameterMap)) {
return parameterMap.get("abc");
}
return null;
}

3 形参为实体类的 如果是提供接口 就需要转换为json 格式的参数

@RequestMapping("/t3")
@ResponseBody
public String test3(@RequestBody ContractInfoVo vo)
{
return JSONObject.toJSONString(vo);
}


如果是jsp获取js页面提交到controller 页面元素的name 要和实体类或者map 的key 一样这样mvc 会自动映射

总结:spring mvc 形参没有list类型如果要有list 需要使用pojo 封装类型 ;  (spring mvc 低版本问题,新的可以,这个是很久的 不记得以前是什么版本了,现在用spring 4.3.17 可以)

 入参为List

@PostMapping("/v1/property/ttt")
    public Integer test(@RequestBody List<Property> properties) {
        return properties.size();
    }

构造入参:

原文地址:https://www.cnblogs.com/fanBlog/p/7459513.html