这个星期一直在用jsf来做一个动态树,画面刚载入的时候加载第一二层,点击第一层的结点时加载第二三层。逻辑实现了,但是画面上的箭头没有相应的事件属性,无法实现它和后台绑定。
画面代码:
<h:panelGrid columns="2" width="100%" columnClasses="col1,col2">
<rich:tree id="pagefresh" style="width:300px" nodeSelectListener="#{tree1bean.nodeload}" reRender="pagefresh" ajaxSubmitSelection="true" switchType="client" value="#{tree1bean.treeNode}" var="item" >
</rich:tree>
</h:panelGrid>
后台代码:
package org.jboss.test.main;
import java.util.List;
import javax.ejb.Remove;
import javax.persistence.EntityManager;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.richfaces.component.UITree;
import org.richfaces.event.NodeExpandedEvent;
import org.richfaces.event.NodeSelectedEvent;
import org.richfaces.model.TreeNode;
import org.richfaces.model.TreeNodeImpl;
@Scope(ScopeType.SESSION)
@Name("tree1bean")
public class Tree1Bean{
private Tree tree;
private TreeNode treenode = null;
private List<Tree> onloadtree;
private List<Tree> onloadtree1;
private String selectnodesql = "from Tree t where t.parentid = ? order by t.id";
private int linkid;
private int flg;
private int parentid;
@In("entityManager")
private EntityManager em;
private void firstNode(int id,TreeNode node){
onloadtree = em.createQuery(selectnodesql).setParameter(1, id).getResultList();
for (int i=0;i<onloadtree.size();i++){
TreeNodeImpl nodeImpl = new TreeNodeImpl();
nodeImpl.setData(onloadtree.get(i).getName());
node.addChild(new Integer(onloadtree.get(i).getId()), nodeImpl);
secondeNode(onloadtree.get(i).getId(),nodeImpl);
}
}
private void secondeNode(int id,TreeNode node){
onloadtree1 = em.createQuery(selectnodesql).setParameter(1, id).getResultList();
for (int i=0;i<onloadtree1.size();i++){
TreeNodeImpl nodeImpl = new TreeNodeImpl();
nodeImpl.setData(onloadtree1.get(i).getName());
node.addChild(new Integer(onloadtree1.get(i).getId()), nodeImpl);
}
}
public TreeNode getTreeNode(){
if (treenode == null){
treenode = new TreeNodeImpl();
parentid = 0;
firstNode(parentid,treenode);
}
return treenode;
}
public void nodeload(NodeSelectedEvent event){
UITree tree = (UITree) event.getComponent();
linkid = Integer.parseInt(tree.getRowKey().toString());
firstNode(linkid,tree.getModelTreeNode());
}
public int getLinkid() {
return linkid;
}
public void setLinkid1(int linkid) {
this.linkid = linkid;
}
@Remove
public void destroy() {
// TODO Auto-generated method stub
}
}
希望有碰到过相同问题的有经验的朋友帮忙解决。多谢。
分享到:
相关推荐
6. **树形结构**:对于展示层次结构的数据,`rich.tree.Tree`类是一个很好的工具。它可以用来表示文件系统、数据结构或其他需要分层展示的信息。 7. **Markdown支持**:Rich库还支持Markdown格式的文本,允许在...
总之,要解决JFace TableTree在OS X下的列宽问题,可以尝试自定义布局管理、监听树节点的展开和收缩事件以及手动调整列宽。同时,利用Eclipse社区的资源寻找已有的解决方案或者报告问题以获取帮助。
- **weblogic访问xml问题:**探讨了在WebLogic服务器环境下访问XML文件时可能遇到的问题及其解决策略。 4. **DWZ版本升级** - **版本记录:**详细列出了每个版本的主要改进和新功能,帮助开发者了解最新的更新...
- **Tree扩展**:支持树形结构数据的展示与操作。 - **Panel扩展**:提供了一个可拖拽、可调整大小的容器组件。 - **日历控件**:集成日期选择功能。 - **URL变量替换**:支持URL参数的动态解析与替换。 - **...
- **补充说明和常见问题**: 官方文档中还提供了许多关于使用框架时可能遇到的问题及其解决方案的详细介绍,这些资料对于初学者来说非常宝贵。 总结而言,DWZ框架以其独特的设计理念和丰富的功能集,在众多前端框架...
DWZ框架文档中详细列举了开发者可能遇到的常见问题及其解决策略,涵盖了从XML加载错误到浏览器兼容性问题的多个方面。这些问题的解决不仅有助于排除开发过程中的障碍,也是对框架深度理解的体现。 #### 版本控制与...
4. Tree Panel:提供树形结构展示数据,支持拖放操作和节点展开收缩。 5. Tab Panel:包含多个Tab标签页的组件,方便在不同视图间切换。 三、布局系统 Ext 3.0引入了多种布局方式,如Fit布局、Border布局、Table...
- **高级组件**:例如`DataGrid`, `Tree`, `Chart`等,这些组件更加复杂,提供了更多的交互性和功能性。 #### 二、Flex高级组件介绍 ##### 1. 高级组件补充与扩展 - **补充Flex框架中没有的组件**:随着应用需求...
DWZ文档中还详细记录了一些常见的问题及其解决办法,例如如何在DWZ中集成第三方jQuery插件、解决兼容性问题等,这些都是开发者在实际应用过程中可能会遇到的问题,通过查阅文档可以获得相应的解决方案。 综上所述,...
- 创建动态Tree控件可以通过动态添加和删除节点以及监听相关的控件事件实现。 - **如何重载MRU文件**(P.25) - 重载MRU文件可以通过自定义`CMRUFile`类或通过覆盖相应的`CWinApp`方法实现。 - **CImageList控件中...
DSE(Data-rich Sub-tree Extraction)算法是一种现有的网页正文抽取方法。该算法主要关注于网页的结构特性,通过分析网页DOM树中的子树结构来识别和提取正文内容。虽然这种方法在一定程度上能够有效地区分正文和...
【ExtJS组件】ExtJS的核心组件包括各种UI元素,如面板(Panel)、表格(Grid)、表单(Form)、树形视图(Tree)、菜单(Menu)等。这些组件都构建在JavaScript类库之上,方便开发者构建复杂的交互式界面。 【ExtJS...
javax.swing.text.rtf 提供一个类 (RTFEditorKit),用于创建富文本格式(Rich-Text-Format)的文本编辑器。 javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序...
在实际开发中,开发者还会遇到Composite(组合组件)、Button、Text、List、Tree、Table等SWT组件,以及Dialogs、Layouts等高级功能。同时,JFace的View、Part、Action等概念用于构建更复杂的RCP应用程序。通过深入...
SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一个开源库,它是Eclipse项目的一部分。...通过学习这些代码,开发者可以快速掌握SWT的用法,解决实际开发中遇到的问题。
javax.swing.text.rtf 提供一个类 (RTFEditorKit),用于创建富文本格式(Rich-Text-Format)的文本编辑器。 javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序...
javax.swing.text.rtf 提供一个类 (RTFEditorKit),用于创建富文本格式(Rich-Text-Format)的文本编辑器。 javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。 javax.swing.undo 允许开发人员为应用程序...