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>

  • 相关阅读:
    nodejs REPL清屏
    flask 的relationship使用
    flask 数据库多对多(文章和标签)
    设置管理员的 蘑菇丁日报 周报、月报
    访问个人主页、蘑菇丁、使用:import urllib.request
    使用requests访问、登录蘑菇丁
    UUID
    爬虫经典案例
    selenium 获取 cookies, 然后登录
    用chrome浏览器登录以后 手动找到cookie、加到自己的python代码中
  • 原文地址:https://www.cnblogs.com/azhqiang/p/3954464.html
Copyright © 2011-2022 走看看