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>

  • 相关阅读:
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及其应用
    计算机网络概述
    实验二——K近邻
    感知机及其应用
    面向对象设计与分析
    结构化分析和设计
    如何安装Dosbox并运行一个汇编代码
    如何解决从windows下载到ubuntu的中文安装包解压中文名出现乱码的情况
    实验一——visio的使用
  • 原文地址:https://www.cnblogs.com/azhqiang/p/3954464.html
Copyright © 2011-2022 走看看