Play Framework常用标签list,set,如何遍历list、map类型数据

  最近一段时间的项目都是在Play这个框架上进行开发的,挺强大的,但不足之处也挺多的。今天分享下play中强大的标签,遍历list,map类型的数据的用法。

  1. 遍历单纯的list数据,例如:List<People> peoples;
    #{list peoples,as:'people'} //peoples为list对象,people为实体变量名 ,name则为实体相对应的属性值
        ${people.name}
     #{/list}
  2. 遍历list中泛化的map类型,例如:List<Map<People>> peoples; 
    #{list peoples,as:'people'} //peoples为list对象,people为实体变量名 ,name则为实体相对应的属性值
       #{list people,as:'map'}${map.value.property}#{/list}
        //第二个list将people再次转换,map取值则像正常的取值,value为map的value,可是对象类型,property则为对象类型的属性值
     #{/list}
  3.  遍历单纯的Map类型,例如:Map<id,People> people;
    //如果知道map的key值,则可以直接通过一下方式获取:
    ${people.get(key).name}
    //如果是要遍历一个map,同样适用list标签
    #{list people,as:'peo'}
    ${peo.value.name} //peo为map变量,value为key的值,name为属性值
    #{/list}

    //如果id是一个对象的话,获取其对象的值则可以这样:
    #{list people,as:'peo'}
    ${peo.key.name} //peo为map变量,key为对象,key为实体对象,name为属性值
    #{/list}
  4.  遍历map与list的组合,例如:Map<id,List<People>> people;

    //知道ID的情况下可以这样,通过get方法获取对象
    #{list people.get(id),as:'peo'}
      ${peo.name}
    #{list}
    //如果people是多个map对象,则可以
    #{list people,as: 'map'}
      #{list map.value,as:'people'
  5. set,if,break标签的使用:
    //模拟遍历list时的计数器
    #{set count:0}//设置变量count
    #{list data,as:'li'}
      <h1>${count}</h1>
    #{if count == 2}
      <% break %> //跳出
    #{/if}
    #{ifelse count == 3}
    <h1>${count}</h1}
    #{/ifelse}
    #{else}
    <h1>${count}</h1>
    #{/else}
    #{set count:count+1}//自增
    #{/list}
posted @ 2013-06-09 17:18  Ziv小威  阅读(4219)  评论(0编辑  收藏