zoukankan      html  css  js  c++  java
  • 【freemarker】渲染列表一系列操作

    数据模型:

    public class AddressVo implements Serializable {
    
        private static final long serialVersionUID = 1137197211343312155L;
    
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public AddressVo(String name) {
            this.name = name;
        }
    
        public AddressVo() {
        }
    }
    public class UserVo implements Serializable {
    
        private String name;
        private Integer age;
    
        private List<AddressVo> addressVoList;
    
    
        private Date birthday;
    
        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 List<AddressVo> getAddressVoList() {
            return addressVoList;
        }
    
        public void setAddressVoList(List<AddressVo> addressVoList) {
            this.addressVoList = addressVoList;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    }
    @GetMapping("list")
        public String list(Model model){
    
            List<UserVo> userVoList=new ArrayList<>();
            for (int i=0;i<5;i++){
                UserVo userVo=new UserVo();
                userVo.setName("张三"+i);
                if(i!=3){
                    userVo.setAddressVoList(Arrays.asList(new AddressVo("上海"+i),new AddressVo("北京"+i)));
                }
                userVo.setAge(i*5);
                if(i!=2){
                    userVo.setBirthday(DateTime.now().plusDays(i).toDate());
                }
                userVoList.add(userVo);
            }
            model.addAttribute("userList",userVoList);
            return "userList";
        }

    freemarker模板

    <table style=" 1000px;height: auto" cellpadding="1" cellspacing="1">
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>地址</th>
                    <th>生日</th>
                    <th>操作</th>
                </tr>
            </thead>
            <#list userList as user >
                <tr>
                    <#--防止user里没有name-->
                    <td>${user.name!}</td>
                    <td>${user.age!}</td>
                    <td>
                        <#--防止user的addressVoList为空-->
                       <#list user.addressVoList!>
                           <#items as address>
                               ${address.name!} <#sep >,
                           </#items>
                        <#else >无地址
                       </#list>
                    </td>
                    <td>
                        ${(user.birthday?string("yyyy-MM-dd"))!"日期不存在"}
                    </td>
                    <td>
                        <#if user?is_even_item>偶数
                        <#else> 奇数
                        </#if>
                        ${user?counter}
            </td>
                </tr>
            </#list>
        </table>

    展示:

     1、freemarker格式化日期防止为空导致异常。

     2、freemark遍历列表防止值为空导致异常。

  • 相关阅读:
    53、Gif 控件GifView 的使用,播放gif图片
    52、图片缩放库 PhotoView
    51、自定义View基础和原理
    Adapter适配器 final int Id 导致选中的Item不在当前界面
    Linux目录结构
    Linux包管理工具分析
    Linux 软件包安装管理
    MySQL配置详解
    MySQL 5.5.x配置文件详解
    Linux Apache2 配置介绍
  • 原文地址:https://www.cnblogs.com/gyjx2016/p/11171510.html
Copyright © 2011-2022 走看看