获取参数控制器
无注解下获取参数
@RequestMapping("/my")
@Controller
public class MyController {
/**
* 在无注解下获取参数,要求参数名称和HTTP请求参数一致
*/
@GetMapping("/no/annotation")
@ResponseBody
public Map<String, Object> noAnnotation(
Integer intval, Long longVal, String strVal){
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("intVal", intval);
paramMap.put("longVal", longVal);
paramMap.put("str", strVal);
return paramMap;
}
}
包装类默认为空,所以不传参数也不会报错
@RequestParam获取参数
SpringMVC提供注解@RequestParam 来确定前后端参数名称的映射关系
@GetMapping("/no/annotation")
@ResponseBody
public Map<String, Object> noAnnotation(
@RequestParam("int_val") Integer intVal,
@RequestParam("long_val") Long longVal,
@RequestParam("str_val") String strVal){
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("intVal", intVal);
paramMap.put("longVal", longVal);
paramMap.put("str", strVal);
return paramMap;
}
默认情况下,@RequestParam标注的参数不能为空
@RequestParam(value = "str_val", required = false) String strVal
这样对应参数就可以为空了。
传递数组
@GetMapping("/no/annotation")
@ResponseBody
public Map<String, Object> reqeustArray(
Integer [] intVal,
Long [] longVal,
String [] strVal){
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("intVal", intVal);
paramMap.put("longVal", longVal);
paramMap.put("str&