zoukankan      html  css  js  c++  java
  • struts标签遍历各种list Map

    首先:从list开始。

    每次在action中查询或者获取的值都要存放list中,为了方便每次都建立一个对象,这样可能造成项目的臃肿。对于简单的遍历我们可以尝试:

    list<String> 后台直接复制就可以:

    前台遍历时:<s:iterator value="list" var="tempList">
            <s:property value="#tempList"/>
          </s:iterator>

    直接用var中的值,因为list<String>中没有名字

    下面来说一下list<Map<String,String>>形式。相信有些特殊情况是要用到这种形式的,那么多层循环我们要这么解决呢?

    • <s:iterator id="map" value="resultList" status="state">   
    •     <s:iterator value="resultList[#state.index]">    
    •       Key : <s:property value="key" />   
    •       Value : <s:property value="value" />   
    •      </s:iterator>   
    • </s:iterator>

    这样俩层循环就可以搞定,注意value="resultList" 如果取值取不到的话,请加上 value="#request.resultList"

    这样就能获取到你想要遍历的值了。

    list部分就到这里了,大家如果有疑问可以留言。

    下面Map部分

    首先普通Map<String,String>

    <s:iterator value="#request.map">
                <s:property value="key"/>
                <s:property value="value"/>
            </s:iterator>

    这样是不很清晰:下面来点有难度的:Map<String,List<TypeInfo>>
    首先TypeInfo结构式这样的:

    1.类型ID typeId
    2.类型名称 typeName
    3.父类型ID parentsId

     <s:iterator var="classificationroot" value="classifications['0']">  
                    <li class="onefl">  
                   <ul id="javabc">
    <s:propertyvalue="#classificationroot.classificationId"/>">  
        <s:iterator var="classification" value="classifications[#classificationroot.classificationId]">  
    <li class="twofl"><a href="#"><span><s:property value="#classification.typesName"/></span></a></li>                        </s:iterator>                     
        </s:iterator>  

    第一个iterator是遍历根节点
    第二个iterator是遍历属于该根节点的子节点

    classifications Map对象的名称 classifications['0']去得key值是0的那个value就是所以根节点List 并遍历它去得根节点的typeId的值,然后通过第二个iterator遍历属于该根节点的子节点。
    注意:第二个iterator的value属性value="classifications[#classificationroot.classificationId]" 的取值方式.

  • 相关阅读:
    Navicat for MySQL破解版安装
    LACP学习笔记
    MUX VLAN
    Beyond Compare用于文件比较还是蛮好的选择,特别是我们程序袁用于比较两个项目的时候,最初使用的是Beyond Compare3一直用着挺好的,几年前更新了版本4,用着用着就提示试用期30天已过期,于是我尝试如下步骤:
    思科交换机如何进行备份与还原?
    vSphere ESXi 6.7 注册码(有效)
    VMware ESXi 6.7密码正确不能登录
    Esxi 6.5 6.7的root密码经过一段时间就不可用的解决方法
    Windows Server 2012 R2 安装密钥
    ubuntu 16 添加多个IP
  • 原文地址:https://www.cnblogs.com/xiehaoyu/p/3437538.html
Copyright © 2011-2022 走看看