springMVC中参数接收

普通变量的接收

地址栏传递参数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";
    }
}


上一篇:@PathVariable


下一篇:springmvc