- 浏览: 418081 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 2295例如将如下jar包D:\bat\JRadiussimulato ... -
HttpURLConnection相关
2011-09-16 17:57 11781、java.io.FileNotFoundException ... -
UML中类之间的关系及其Java代码例子<转>
2011-05-11 09:38 2473关系是事物之间的联系 ... -
java反射:object is not an instance of declaring class
2011-04-12 09:56 79064/** * <pre> * &l ... -
XML、JavaBean转换
2011-02-11 11:48 2404引用转自http://lywybo.iteye.com/blo ... -
Proxool报错Exception in Thread "HouseKeeper" java.lang.NullPointerException
2011-01-19 17:45 9737问题: 当tomcat里的项目设置成reload=true时, ... -
log4j不打印日志文件到tomcat日志中
2011-01-18 11:06 9313如有以下log4j配置: log4j.rootLogger ... -
dom4j生成xml
2011-01-17 16:00 13181、XMLWriter输出domcument对象: XML ... -
SVN服务端安装
2010-12-18 12:37 1725一、下载安装文件 可执行文件:http://subversio ... -
JAVA中几种概念
2010-08-27 13:52 11271、高内聚(将逻辑上相关的抽象放在一起)低耦合(减少模块间的依 ... -
ehcache报告UnknownHostException错误
2010-06-05 15:07 4840报错如下: java.net.UnknownHostExc ... -
log4j中关闭memcached日志
2010-03-27 18:31 2552log4j.logger.com.danga.MemCache ... -
Java文件下载的几种方式
2010-01-06 15:02 1383public HttpServletResponse do ... -
TreeView鼠标放在node上显示文字
2009-12-08 20:39 1575在node的Text属性上,包一层<span>让其 ... -
BufferedReader和FileReader读取txt文件乱码
2009-11-11 14:11 4982读取txt文件乱码 BufferedReader rea ... -
c3p0 DEBUG -- CLOSE BY CLIENT STACK TRACE
2009-11-06 14:32 4588Indeed, there is nothing to wor ... -
Apach Common 包
2009-10-28 22:47 1194Common IO: FileUtils: File t ... -
File API 常用方法
2009-10-28 15:13 1228File f = new File("c:\\ ... -
Java File.renameTo方法一直返回false
2009-10-22 17:36 7397描述: 在使用File.renameTo修改文件名时,一直返 ... -
File的getPath getAbsolutePath和getCanonicalPath的不同
2009-10-14 21:21 4233引用http://www.blogjava.net/dream ...
相关推荐
主要介绍了Element input树型下拉框的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
利用vs2005自带的树型控件、结合div、css、javascript制作的用户自定义控件(类似dropdownlist,只不过下拉列表中用treeview 绑定数据),可实现树型结构数据的展示选择(数据增加绑定的方法在例子中)。在vs2005、vs...
bootstrap树控件使用bootstrap-treeview.js树形控件在下拉框select中显示,带树形的下拉框
发现上一个版本,如果数据顺序颠倒就会出现问题,现在加以改进,
用C#编写的一个下拉框控件,展开后内部可以有树型结构,对应WINFORM程序特别有用.
点击文本框后面的图标在文本框下方出现树层,双击某个结点,这个结点的ID值,会出现在文本框中。
下拉框多选实现demo,包含ComboBox和复选框组合,ComboBox和树型结果组合。
使用zTree实现的可以多选的下拉框控件Demo
结合ztree制作的下拉框,数据多级显示,通过配置实现多选或单选,数据可以是固定数据或ajax动态加载
bootstrap树控件使用bootstrap-treeview.js树形控件在下拉框select中显示,带树形的下拉框
WPF 下拉框树状通用控件,下载即可使用
JSP自定义标签(一)_树形下拉选择菜单
thinkphp树型结构下拉
主要介绍了vue实现的树形结构加多选框,结合实例形式分析了在之前递归组件实现vue树形结构的基础之上再加上多选框功能相关操作技巧,需要的朋友可以参考下
这是一个C#下拉框是树形结构源码,实现简单。
.net DropDownList 树型显示,技术文档