随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。
posts - 398,comments - 0,views - 13万

Spring的form标签库动态获取后端List或Map数据

Select 、checxDoves、 radicbotons、都可以使用ltems 制定数据源可以是list(当List的泛型是jaaBeran的时候需要制定itemValue和itemLabel)、 map(不需要制定itemValue和itemLabel)。

使用@ModelAttribute在请求方法之前进行数据注入:

@ModelAttribute
public void initData(Model model){
    Map<String,String> map = new HashMap<>();
    map.put("1","睡觉");
    map.put("2","躺床");
    model.addAttribute("map",map);
}

注入数据为Map:

使用form标签动态接收数据

<div>
  hobbies:
  <form:checkboxes path="hobbies" items="${map}"></form:checkboxes>
</div>

成功获取到Map数据。

注入数据为javaBean:

需要指定itemLabel和itemValue。

创建Hobby类:

package cn.cdulm.entity;

import org.springframework.stereotype.Component;

import java.util.Objects;

@Component
public class Hobby {
    private Integer id;
    private String name;

    public Hobby() {
    }

    public Hobby(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Hobby{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Hobby hobby = (Hobby) o;
        return Objects.equals(id, hobby.id) && Objects.equals(name, hobby.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name);
    }

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

数据注入:

	@ModelAttribute
    public void initData(Model model){
        List<Hobby> ls = new ArrayList<>();
        Hobby hobby1 = new Hobby(1,"睡觉");
        Hobby hobby2 = new Hobby(2,"躺床");
        ls.add(hobby1);
        ls.add(hobby2);
        model.addAttribute("ls",ls);
    }

前端获取:

<form:checkboxes path="hobbies" items="${ls}" itemLabel="id" itemValue="name"></form:checkboxes>

显示id,值为name:

可以发现,页面显示的是设置的id,而获取到的值是id对应的name。

posted on   时间完全不够用啊  阅读(318)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示