微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 +
                '}';
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐