zoukankan      html  css  js  c++  java
  • DWZ SSH2 菜单树--使用Struts2 标签(iterator/set/if 组合使用)

    最近在研究DWZ框架,然后要写一个菜单树,后台我使用了SSH2,然后想把菜单通过后台传过来的对象展示出来。
    但是,发现应用样式的时候,如果子菜单在子循环中为空的话,会多出一对空标签“<ul></ul>”,而DWZ的框架的样式,一旦发现标签<li>下出现标签“<ul></ul>”, 不论标签“<ul></ul>”里的内容是否为空,都会判断<li>为父级菜单,不是为最终的子菜单。
    所以我只能在页面的父级循环中使用set标签设置一个变量flag,把需要迭代(iterator)的子菜单列表在父级菜单中先迭代一次,用来取得flag值,再用flag来判断(if标签)是否需要新建下一级子循环。
    然后就是用iterator/set/if 组合使用来实现页面上的动态菜单树和DWZ样式的完美融合。

    <div id="sidebar">
    <div class="toggleCollapse">
    <h2>主菜单</h2>
    <div>收缩</div>
    </div>

    <div class="accordion" fillSpace="sidebar">
    <div class="accordionHeader">
    <h2>
    <span>Folder</span>导航
    </h2>
    </div>
    <div class="accordionContent">
    <ul class="tree treeFolder">
    <s:action name="menuTree"></s:action>
    <s:iterator value="#attr.parentMenuTrees" status="index">
    <s:set name="pId" value="id"></s:set>
    <s:set name="flagId" value="'N'"></s:set>
    <s:iterator value="#attr.subMenuTrees" status="index">
    <s:if test="#pId==parentId">
    <s:set name="flagId" value="'Y'"></s:set>
    </s:if>
    </s:iterator>
    <li>
    <a href="javascript:;" target="navTab"><s:property value="menuName" /> </a>
    <s:if test="#flagId=='Y'">
    <ul>
    <s:iterator value="#attr.subMenuTrees" status="index">
    <s:if test="#pId==parentId">
    <li><a href="<s:property value="url"/>"
    target="navTab"><s:property
    value="menuName" /> </a></li>
    </s:if>
    </s:iterator>
    </ul>
    </s:if></li>
    </s:iterator>
    </ul>
    </div>
    </div>
    </div>

  • 相关阅读:
    wait
    iOS UITableviewCell优化
    iOS本地版本和服务器对比
    iOS 二维码生成 改变颜色 添加中心图
    iOS坑点解析
    iOS View快照,View截屏
    双缓冲读感感悟
    查找附近点--Geohash方案讨论
    各种报告word模板
    跳转到设置里面各个页面iOS8
  • 原文地址:https://www.cnblogs.com/azhqiang/p/3954464.html
Copyright © 2011-2022 走看看