SpringMVC中参数接收(String、对象、list、map等类型)

SpringMVC中参数接收

接收参数语法说明:
springmvc中使用控制器方法参数来收集客户端的请求参数,因此在接收请求参数时直接在需要控制器方法声明即可,springmvc可以自动根据指定类型完成类型的转换操作

参数类型大概有:
基本类型或者 String 类型、对象类型、list类型、map类型等。。。

接收参数的各种测试:

import com.krystal.entity.User;
import com.krystal.vo.CollectionVO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("param")
public class ParamController {

    /**
     * 用来测试集合类型数据接收
     * http://localhost:8080/springmvc_day1/param/test3?lists=%E5%B0%8F%E9%BB%91&lists=xiaobai
     * 注意:springmvc不能直接通过形参列表方式收集集合类型参数
     * 如果要接收集合类型的参数必须将集合类型的参数放到对象中  最好放入vo对象中接收集合参数
     * vo  = value  Object 值对象
     * */
    @RequestMapping("test3")
    public String test3(User user){
        List<String> lists = user.getLists();
        lists.forEach(str-> System.out.println(str));
        return "index";
    }
    //http://localhost:8080/springmvc_day1/param/test4?lists=111&lists=%E4%BC%9A%E8%AF%9D&lists=%E5%BC%A0%E4%B8%89
    @RequestMapping("test4")
    public String test4(CollectionVO collectionVO){
        List<String> lists = collectionVO.getLists();
        lists.forEach(str-> System.out.println(str));
        return "index";
    }

    /*
     *用来测试数组类型参数接收
     * 接收数组:将要接收数组类型直接声明为方法的形参即可
     * 注意:保证请求参数多个参数key与声明数组变量名一致,springmvc会自动放入同一个数组中
     *http://localhost:8080/springmvc_day1/param/test2?qqs=111&qqs=222&qqs=lllala
     * form: checkbox
     *      input type="checkbox" name="qqs"  value="看书"
     *      input type="checkbox" name="qqs"  value="卖报"
     *      input type="checkbox" name="qqs"  value="吃饭"
     * */
    @RequestMapping("test2")
    public String test2(String[] qqs){
        for (String qq : qqs) {
            System.out.println(qq);
        }

        return "index";
    }

    /**
     * 用来测试对象类型参数接收的Controller
     * 接收对象类型:也是直接将要接收对象作为控制器方法参数声明
     * 注意:springmvc封装对象时直接根据传递参数key与对象中属性名一致自动封装对象
     * http://localhost:8080/springmvc_day1/param/test1?id=2&name=%E7%A7%80%E7%A7%80&age=18&bir=1994/10/24
     * form:
     *      input  name = "id"
     *      input  name = "name"
     *      input  name = "age"
     *      ...
     * */
    @RequestMapping("test1")
    public String test1(User user,String name){
        System.out.println(user);
        System.out.println(name);
        return "index";
    }
    /**
     * 测试零散类型参数接收
     *
     * 默认日期格式:yyyy/MM/dd
     *
     * */
    @RequestMapping("test")
    public String test(String name, Integer age, Double price, boolean sex, Date date){
        System.out.println("name:"+name);
        System.out.println("age:"+age);
        System.out.println("price:"+price);
        System.out.println("sex:"+sex);
        System.out.println("date:"+date);
        return "index";
    }
}

其中list和map以及对象类型可能设计到实体类:
User实体类

import java.util.Date;
import java.util.List;

public class User {
    private String id;
    private String name;
    private Integer age;
    private Date bir;

    private List<String> lists;

    public List<String> getLists() {
        return lists;
    }

    public void setLists(List<String> lists) {
        this.lists = lists;
    }

    public User() {
    }

    public User(String id, String name, Integer age, Date bir) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.bir = bir;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getBir() {
        return bir;
    }

    public void setBir(Date bir) {
        this.bir = bir;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", bir=" + bir +
                ", lists=" + lists +
                '}';
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值