- 浏览: 422601 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (115)
- spring (1)
- apache-hadoop (1)
- struts 2.x (12)
- ruby & rails (2)
- hibernate 3.x (1)
- oracle (2)
- sqlserver (6)
- maven (3)
- Java (29)
- tomcat (7)
- resin 3.x (2)
- javascript (10)
- eclipse (6)
- DWR (1)
- ibatis (4)
- Linux (4)
- servlet (1)
- J2EE项目分析 (7)
- Lucene (4)
- jQuery (1)
- mysql (2)
- OSGI (1)
- JMS ActiveMQ (2)
- 开源 (1)
最新评论
-
aplixy:
gaoyibin 写道我在io流关闭以后使用renameTo ...
Java File.renameTo方法一直返回false -
GGGGeek:
...
java反射:object is not an instance of declaring class -
zgw06629:
多谢了 字符串必须要单引号真得挺坑的
s:radio 默认值 -
com.張:
村上春树
java反射:object is not an instance of declaring class -
僧_唐:
该方法不能真正的解决 actionMessage或action ...
struts2中多action间传递ActionMessage,ActionError
代码参考:http://www.java2000.net/p944
public class SelectTree { // 编号 private String id; // 标题 private String title; // 下级列表 private List<SelectTree> children = new ArrayList<SelectTree>(); // 上级,顶层为null private SelectTree parent; // 前一个节点 private SelectTree prev; // 后一个节点 private SelectTree next; // 当前处理的节点 private SelectTree current; /** * 默认的构造器 */ public SelectTree() { } /** * 推荐使用的构造器 * * @param id * 编号 * @param title * 文本 */ public SelectTree(String id, String title) { this.id = id; this.title = title; } /** * 增加一个下属。 * * 自动对应上级和兄弟结点 * * @param f * 被增加的节点 */ public void addChild(SelectTree f) { children.add(f); f.setParent(this); if (current != null) { current.next = f; } f.prev = current; current = f; } /** * 输出为下拉列表的方法 * * @param selectedId * 被选中的编号 * @return 下拉列表的字符串。可以直接放到<select></select>里面 */ public String getOption(String selectedId) { return "<option value=''>" + toStringOption("", "", selectedId); } /** * 输出为Text的方法。 * * @param lftStr * 左侧额外的字符串 * @param append * 右侧显示的字符串 * @return 文本形式的字符串 */ public String toStringText(String lftStr, String append) { StringBuilder b = new StringBuilder(); b.append(append + title); b.append("\n"); if (children.size() > 0) { for (int i = 0; i < children.size() - 1; i++) { b.append(lftStr + children.get(i).toStringText(lftStr + "│", "├")); } b.append(lftStr + children.get(children.size() - 1).toStringText( lftStr + " ", "└")); } return b.toString(); } public static void main(String[] args) { f1_1_1.addChild(f1_1_1_1); SelectTree f1_1_1_2 = new SelectTree("1112", "娱乐2"); f1_1_1.addChild(f1_1_1_2); SelectTree f1_2 = new SelectTree("12", "辅助工具"); f1.addChild(f1_2); SelectTree f2 = new SelectTree("2", "My Documents "); root.addChild(f2); SelectTree f3 = new SelectTree("3", "My Documents2 "); SelectTree f5 = new SelectTree("5", "My Documents5 "); SelectTree f6 = new SelectTree("6", "My Documents6 "); f5.addChild(f6); f3.addChild(f5); root.addChild(f3); System.out.println(root.toStringText(" ", "")); System.out.println(root.getOption("0")); System.out.println(f1_1_1_2.getPrev().getTitle()); System.out.println(f1_1_1_2.getPrev().getParent().getTitle()); } public List<SelectTree> getChildren() { return children; } public String getId() { return id; } /** * 得到下一个兄弟结点。 * * @return 如果是最后一个,则返回null */ public SelectTree getNext() { return next; } public SelectTree getParent() { return parent; } /** * 得到前一个兄弟结点。 * * @return 如果是第一个,则返回null */ public SelectTree getPrev() { return prev; } public String getTitle() { return title; } public void setId(String id) { this.id = id; } public void setNext(SelectTree next) { this.next = next; } public void setParent(SelectTree parent) { this.parent = parent; } public void setPrev(SelectTree prev) { this.prev = prev; } public void setTitle(String title) { this.title = title; } /** * 构造下拉列表. * * @param lftStr * 左侧的字符 * @param append * 增加的字符 * @param idSelected * 被选中的编号 * @return 下拉列表字符串 */ private String toStringOption(String lftStr, String append, String idSelected) { StringBuilder b = new StringBuilder(); b.append(append + title + "</option>"); b.append("\n"); if (children.size() > 0) { for (int i = 0; i < children.size() - 1; i++) { b.append("<option value='" + children.get(i).getId() + "'" + (idSelected.equals(children.get(i).getId()) ? " selected" : "") + ">" + lftStr + children.get(i).toStringOption(lftStr + "│", "├", idSelected)); } b.append("<option value='" + children.get(children.size() - 1).getId() + "'" + (idSelected.equals(children.get(children.size() - 1).getId()) ? " selected" : "") + ">" + lftStr + children.get(children.size() - 1).toStringOption( lftStr + " ", "└", idSelected)); } return b.toString(); } }
Action: public String rNavFind() { // 根节点 SelectTree root = new SelectTree("0", "权限列表"); //service递归产生节点 rbacService.getCoreFuncsByPid(root, "0"); coreFuncsOptionStr = root.getOption(coreTree.getFunc_id()); coreTree = this.rbacService.findTreeById(id); hasChildren = this.treeNodeService.hasChildren(id); return "edit"; }
Service: public void getCoreFuncsByPid(SelectTree currentSelectTree, String pid) { List<CoreFunc> list = this.rbacDao.getCoreFuncsByPid(pid); SelectTree selectTree; int cnt = 0; for (CoreFunc cf : list) { selectTree = new SelectTree(cf.getId(), cf.getName()); currentSelectTree.addChild(selectTree); cnt = this.rbacDao.getChildrenCountByPid(cf.getId()); if (cnt == 0) { continue; } else { getCoreFuncsByPid(selectTree, selectTree.getId()); } } }
JSP: <select name="funcId"> <s:property value="coreFuncsOptionStr" escape="false" /> </select>
发表评论
-
windows下将jar文件设置成bat
2012-03-09 12:00 2360例如将如下jar包D:\bat\JRadiussimulato ... -
HttpURLConnection相关
2011-09-16 17:57 12071、java.io.FileNotFoundException ... -
UML中类之间的关系及其Java代码例子<转>
2011-05-11 09:38 2513关系是事物之间的联系 ... -
java反射:object is not an instance of declaring class
2011-04-12 09:56 79157/** * <pre> * &l ... -
XML、JavaBean转换
2011-02-11 11:48 2437引用转自http://lywybo.iteye.com/blo ... -
Proxool报错Exception in Thread "HouseKeeper" java.lang.NullPointerException
2011-01-19 17:45 9788问题: 当tomcat里的项目设置成reload=true时, ... -
log4j不打印日志文件到tomcat日志中
2011-01-18 11:06 9357如有以下log4j配置: log4j.rootLogger ... -
dom4j生成xml
2011-01-17 16:00 13591、XMLWriter输出domcument对象: XML ... -
SVN服务端安装
2010-12-18 12:37 1756一、下载安装文件 可执行文件:http://subversio ... -
JAVA中几种概念
2010-08-27 13:52 11611、高内聚(将逻辑上相关的抽象放在一起)低耦合(减少模块间的依 ... -
ehcache报告UnknownHostException错误
2010-06-05 15:07 4893报错如下: java.net.UnknownHostExc ... -
log4j中关闭memcached日志
2010-03-27 18:31 2585log4j.logger.com.danga.MemCache ... -
Java文件下载的几种方式
2010-01-06 15:02 1408public HttpServletResponse do ... -
TreeView鼠标放在node上显示文字
2009-12-08 20:39 1615在node的Text属性上,包一层<span>让其 ... -
BufferedReader和FileReader读取txt文件乱码
2009-11-11 14:11 5017读取txt文件乱码 BufferedReader rea ... -
c3p0 DEBUG -- CLOSE BY CLIENT STACK TRACE
2009-11-06 14:32 4638Indeed, there is nothing to wor ... -
Apach Common 包
2009-10-28 22:47 1219Common IO: FileUtils: File t ... -
File API 常用方法
2009-10-28 15:13 1272File f = new File("c:\\ ... -
Java File.renameTo方法一直返回false
2009-10-22 17:36 7461描述: 在使用File.renameTo修改文件名时,一直返 ... -
File的getPath getAbsolutePath和getCanonicalPath的不同
2009-10-14 21:21 4285引用http://www.blogjava.net/dream ...
相关推荐
本文将详细讲解如何创建和使用asp.net树型下拉框,以及相关的实现技巧。 首先,要实现树型下拉框,我们需要创建一个自定义用户控件(User Control)。在ASP.NET中,自定义用户控件允许我们封装和重用复杂的UI逻辑。...
### 树型下拉框实现原理 1. **交互逻辑:** 实现树型下拉框的核心在于,当用户输入框(input)获得焦点时,下拉框(el-tree)显示出来,用户可以在这个树型结构中选择所需的数据项。当用户再次点击下拉框或者在其他...
2. 树型下拉框实现方式:在最初的实现中,存在数据顺序颠倒导致的问题。针对这一问题,改进版的树型下拉框通过一种特定的算法,先加载根节点,然后再递归地加载每个根节点的子节点。算法工作原理如下: - 首先,按...
而Bootstrap Treeview.js是一个专门用于创建树形结构的JavaScript库,它可以轻松地集成到Bootstrap环境中,实现下拉框中的树形菜单。 首先,要实现Bootstrap树形下拉框,你需要包含以下关键文件: 1. Bootstrap CSS...
在传统的下拉框(ComboBox)中,用户只能看到一个单一的列表,而“带树型结构的下拉框控件”则允许用户在展开控件时看到一个层次结构,这特别适用于表示具有分层关系的数据,如组织结构、文件系统或者分类目录。...
2. **JavaScript 事件监听**:通过JavaScript,我们需要监听图标或文本框的点击事件,当用户点击图标时,树型下拉框应该显现。这可以通过`addEventListener`函数实现,绑定`click`事件并调用相应的处理函数。 3. **...
实现Ext JS下拉树的关键在于正确配置`Ext.form.field.Tree`组件。以下是一些核心配置项的详细解释: 1. **store**:下拉树的数据源,通常是一个`Ext.data.TreeStore`实例,它管理着树结构中的节点数据。你需要定义...
在案例中,`Ext.ux.TreeCombo` 是基于 `Ext.form.ComboBox` 进行扩展的,目的是实现一个包含树形结构的下拉框。 2. **Ext.ux.TreeCombo**: 这是一个自定义组件,它结合了ComboBox和TreePanel的特性。它继承了...
"zTree实现多选下拉框"这个主题聚焦于如何利用zTree这款JavaScript库来创建一个支持多选功能的下拉框控件。zTree是一款强大的树形插件,广泛应用于网页中展示层次结构数据,如组织结构、文件目录等。本文将详细介绍...
这个组件是基于流行的前端框架Bootstrap和JavaScript库构建的,使得在网页设计中实现树形下拉框变得简单高效。 在Bootstrap中,树形下拉框主要依赖于`bootstrap-treeview.js`这个JavaScript插件,它扩展了Bootstrap...
不过,通过自定义控件,我们可以实现下拉框的多选功能。这里将详细讲解如何实现这一功能,以及如何结合其他UI元素,如复选框和树型视图。 首先,让我们关注“ComboBox和复选框组合”的实现。这通常涉及到创建一个...
1. **基本原理**:树形下拉框是将传统的下拉框与ZTree(一个JavaScript实现的树形插件)结合,当用户点击下拉按钮时,会展开一个包含层级结构数据的列表供用户选择。 2. **ZTree介绍**:ZTree是一个基于jQuery的树...
在HTML中,下拉框通常使用`<select>`标签创建,而树形结构则需要通过JavaScript库如jQuery或者更专业的UI库如jQuery UI或AngularJS来实现。Bootstrap Select通过插件的形式将这两者融合,使得在网页中可以方便地创建...
下面将详细介绍WPF下拉框树状通用控件的设计原理、实现方法以及如何在项目中应用。 首先,WPF下拉框树状控件通常由两个主要部分组成:一个文本框和一个下拉列表。文本框显示当前选中的项,而下拉列表则显示可选的树...
在网页设计中,下拉框(Dropdown)是一种节省空间且易于使用的表单元素,它允许用户从预定义的选项中进行选择。在这里,下拉框被扩展为一个树形结构,这意味着当用户点击下拉按钮时,会展示一个包含层级关系的数据...