普通变量的接收
地址栏传递参数key必须与控制器方法中声明的形参变量名一致即可自动赋值
对象的接收
地址栏传递参数key必须与控制器方法中声明的对象属性名一致即可自动赋值
数组的接收
地址栏传递多个参数key必须与控制器方法中声明的数组名一致即可自动赋值
集合的接收
不可以将控制器方法的形参设为集合,设为集合也接受不到,通过创建对象接收集合数据
将集合的数据直接封装到对象中即可
示例
package com.codegzy.controller;
//参数的接收
import VO.ConllectionVO;
import com.codegzy.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Map;
@Controller
@RequestMapping("/param")
public class ParamController {
@RequestMapping("/test1")
public String test1(String name){
//普通参数的接收 保证参数中的key和形参参数命一致即可
System.out.println("name = " + name);
return "index";
}
@RequestMapping("/test2")
public String test2(User user){
//对象类型参数接收,url传递参数中的key与对象中属性名一致即可自动封装对象
System.out.println(user);
return "index";
}
@RequestMapping("/test3")
public String test3(String[] words){
//数组类型的接收 保证多个参数的key与数组的变量名一致即可自动封装进数组
System.out.println(words);
return "index";
}
@RequestMapping("/test4")
public String test4(ConllectionVO conllectionVO){
//接收集合类型 集合类型springmvc不能通过形参列表直接接收
//通过将集合放入对象中再接收 推荐使用VO
//http://localhost:8080/springmvc/param/test4?cards=123&cards=456
System.out.println(conllectionVO.getCards());
return "index";
}
@RequestMapping("/test5")
public String test5(ConllectionVO conllectionVO){
//接收map数据
//http://localhost:8080/springmvc/param/test5?map['name']=gzy&map['age']=166
Map<String, String> map = conllectionVO.getMap();
map.forEach((key, value) -> System.out.println("key = " + key + " value = " + value));
return "index";
}
}