需要生成:
http://www.softcomplex.com/products/tigra_menu_tree/
最终生成的菜单:
首先按需求定义了一个model.
package com.jxlt.db.parse; import java.io.Serializable; public class TreeModel implements Serializable { private static final long serialVersionUID = 7896562831509010976L; private String code; private String title; private String url; private boolean leaf; private int level; /** * @return Returns the leaf. */ public boolean isLeaf() { return leaf; } /** * @param leaf * The leaf to set. */ public void setLeaf(boolean leaf) { this.leaf = leaf; } /** * @return Returns the title. */ public String getTitle() { return title; } /** * @param title * The title to set. */ public void setTitle(String title) { this.title = title; } /** * @return Returns the url. */ public String getUrl() { return url; } /** * @param url * The url to set. */ public void setUrl(String url) { this.url = url; } /** * @return Returns the code. */ public String getCode() { return code; } /** * @param code * The code to set. */ public void setCode(String code) { this.code = code; } /** * @return Returns the level. */ public int getLevel() { return level; } /** * @param level * The level to set. */ public void setLevel(int level) { this.level = level; } }
获取内容:
package com.jxlt.db.parse; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.jxlt.db.util.DataSourceUtils; public class ParseTree { private static final String sql = "select t.bz_code code, t.bz_title itle, t.bz_content content " + " from bz_czzs t " + " order by t.bz_code"; private static final String sql2 = "select t.bz_code code, t.bz_title title, t.bz_content content " + " from bz_czzs t " + " where substr(t.bz_code, 0, 3) = '002'" + " order by t.bz_code"; public static List parse() { Connection conn = null; Statement st = null; ResultSet rs = null; List list = new ArrayList(); try { conn = DataSourceUtils.getConnection(); st = conn.createStatement(); rs = st.executeQuery(sql2); String code, title = ""; while (rs.next()) { code = rs.getString("code"); title = rs.getString("title"); TreeModel model = new TreeModel(); model.setCode(code); model.setTitle(title); model.setUrl( "m/content/" + code + ".html"); model.setLeaf(false); model.setLevel( code != null ? code.length() / 3 : 0); list.add(model); } } catch (SQLException e) { e.printStackTrace(); } finally { // DataSourceUtils.close(rs); // DataSourceUtils.close(st); DataSourceUtils.close(conn); } return list; } }
生成js文件
package com.jxlt.db.parse; import org.apache.log4j.Logger; import java.util.List; /** * Generate the left tree menu * * @author martin.xus (martin.xus@gmail.com) */ public class GeneratorTree { private static Logger logger = Logger.getLogger(GeneratorTree.class); public static final String TREE_FILE = "D:\workspace\style\test\martin.tree.002.js"; /** * Generate the left tree menu * * @return String */ public static String generator() { StringBuffer buf = new StringBuffer().append(HEADER); List list = ParseTree.parse(); logger.debug("generating tree menu begin"); TreeModel model; TreeModel modelNext; int position; if (null != list && 0 < list.size()) { for (int i = 0, length = list.size(); i < length - 1; i++) { logger.debug("dealed with :" + i + " rows"); StringBuffer _buf = new StringBuffer(); model = (TreeModel) list.get(i); modelNext = (TreeModel) list.get(i + 1); _buf.append("['").append(model.getTitle()).append("','") .append(model.getUrl()).append("'"); if (model.getLevel() > modelNext.getLevel()) { _buf.append(SUFFIX).append(COMMA); } else if (model.getLevel() == modelNext.getLevel()) { _buf.append(SUFFIX).append(COMMA).append(PLACEKICK); } else if (model.getLevel() < modelNext.getLevel()) { _buf.append(COMMA).append(PLACEKICK).append(SUFFIX); } position = buf.toString().indexOf(PLACEKICK); if (position != -1) { buf.replace(position, position + 7, _buf.toString()); } else { buf.insert(buf.length() - model.getLevel() - 4, "," + _buf.toString()); } if (i == length - 2) { _buf.append("['").append(modelNext.getTitle()) .append("','").append(modelNext.getUrl()).append( "'").append(SUFFIX).append(COMMA); } } } return buf.toString(); } private static final String SUFFIX = "]"; private static final String COMMA = ","; private static final String PLACEKICK = "$martin"; private static final String HEADER = "var TREE_ITEMS = [['索引','#'," + PLACEKICK + "]];"; }
test 一下:
logger.debug("writing file:" + GeneratorTree.TREE_FILE); FileWriter writer = new FileWriter(GeneratorTree.TREE_FILE); writer.write(GeneratorTree.generator()); writer.flush(); writer.close(); logger.debug("end");
菜单js样本
一:
var TREE_ITEMS = [
['index', '#',
['001', '#001',
['001001', '#001001',
['001001001', '#001001001'],
],
['001002', '#001002',
['001002001', '#001002001',
['001002002', '#001002002'],
],
],
['001003', '#001001003',
['001003001', '#001003001',
['001003001001', '#001003001001'],
['001003001002', '#001003001001',
['001003001002001', '#001003001002001'],
],
],
],
],
['002', '#002'],
]
];
相关推荐
css菜单生成器css菜单生成器css菜单生成器
菜单生成器 任务 菜单生成器 任务背景 运用元组相关知识,编写一个程序,要求输入菜品和它的价格,格式化打印该菜单。 本案例主要针对元组的基本使用的考察,元组是不可变序列,创建元组可以通过()创建,也可以通过...
网页菜单生成器 生成网页菜单 生成菜单代码 菜单生成 生成菜单代码 菜单自动生成
树形目录菜单生成器,(JavaScript版本)
QuickMenu菜单生成工具,图形化界面生成菜单,同时生成CSS文件和HTML代码,拷贝后粘贴即可,非常方便。
ASP制作下拉菜单生成器
Js菜单生成工具(DIV CSS菜单在线生成器),包括生成一些圆角的菜单,十分方便,用起来也十分方便。用它生成的菜单无论是在功能或是外观方面都很不错,而且兼容各大浏览器,生成的菜单你可直接复制代码文件就可使用...
一个很不错的Js菜单生成工具 生成由Js和Css组成的菜单。非常不错
微信菜单生成器工具,微信菜单生成器工具微信,菜单生成器工具
历史最牛的菜单生成工具
css菜单生成器 生成各种菜单样式,超好用,不用手工编写css了
生成树状导航菜单,非常方便,功能强大 可以根据自定义图片,样式来实现,非常容易上手
js菜单 菜单生成工具 层级菜单生成工具 下拉菜单生成工具
可方便地生成Grub4DOS的菜单,20个用真实物理扇区(簇大小512)制作的img镜像,配合grub4dos使用BUG出现概率相对其它方式做的img要少得多。 3,064,320 2.92.img 3,322,368 3.16.img 4,096,512 3.90.img 4,870,656 4.64...
非常好的网页 菜单生成工具,完全破解!我自用的好东西!提供了很多模板,可以生成3级菜单,网上有类似的使用版本下载,我这个是破解的
VC++ 超级精致的多风格窗体 菜单生成程序 一个超级棒的VC++窗体菜单生成程序的源代码,生成的菜单各种各样,每一款都十分精致优美,如上源码爱好者截图所示,它能够自定义菜单的外观、立体感效果、菜单选项背景、...
一个纯WEB代码菜单生成工具,有多种样式,有需要的朋友不访下载用用
树形目录菜单生成器v1.0 经常用得到,不错。。。
基于VC 的窗体多风格菜单生成器CHSMenu代码,CHSMenu 类的使用细节请您参考附带的说明。另有CHSMenuPro 类(由CHSMenu派生)。CHSMenu 类使用说明: void AppendMenu( LPCTSTR pszName, UINT uID, ULONG ulData = 0...
微信菜单生成工具,下载后解压文件放到ide中既可以使用