`
iamlibo
  • 浏览: 70494 次
社区版块
存档分类
最新评论

MyFaces tree2

阅读更多

今天看了一下MyFaces的tree2组件,想用它做一个菜单。

看了一下例子。主要是这样的:

XHTML中的部分代码:

<t:tree2 id="menuTree" value="#{menuBean.menuTree}" var="node"
clientSideToggle="true" varNodeToggler="t">
<f:facet name="root">#{node.description}</f:facet>
<f:facet name="child">
<h:panelGroup>
<f:facet name="expand">
<t:graphicImage value="images/yellow-folder-open.png"
rendered="#{t.nodeExpanded}" border="0" />
</f:facet>
<f:facet name="collapse">
<t:graphicImage value="images/yellow-folder-closed.png"
rendered="#{!t.nodeExpanded}" border="0" />
</f:facet>
<h:outputLink value="/XiangYun/pages/user/list.jsf">#{node.description}</h:outputLink>
</h:panelGroup>
</f:facet>
</t:tree2>

其中:#{menuBean.menuTree}是menuBean中的一个变量。是org.apache.myfaces.custom.tree2.TreeNodeBase类型。

MenuBean.java

public class MenuBean {
public MenuBean(){
menuTree =new TreeNodeBase("root","displayName",false);
menuTree.getChildren().add(new TreeNodeBase("child","displayName1","id1",true));
menuTree.getChildren().add(new TreeNodeBase("child","displayName2","id2",true));
TreeNode _treeChild =new TreeNodeBase("child","displayName5",false);
_treeChild.getChildren().add(new TreeNodeBase("child","displayName5-1",true));
menuTree.getChildren().add(_treeChild);
menuTree.getChildren().add(new TreeNodeBase("child","displayName3","id3",true));
menuTree.getChildren().add(new TreeNodeBase("child","displayName4","id4",true));
}
private TreeNode menuTree;

public TreeNode getMenuTree() {
return menuTree;
}

public void setMenuTree(TreeNode menuTree) {
this.menuTree = menuTree;
}
}

其中页面代码中的:

<f:facet name="root">是与menuBean中的new TreeNodeBase("root","displayName",false);对应的。表示这部分是渲染root的部分。这个"root"的名字可以自己定。但是两者要一致。child同理。还可以根据情况设置其他的。

TreeNodeBase的构造方法有三种:

TreeNodeBase()

TreeNodeBase(java.lang.String type, java.lang.String description, boolean leaf)
TreeNodeBase(java.lang.String type, java.lang.String description, java.lang.String identifier, boolean leaf)

最后一个参数表示是否是未级节点。把XHTML中的代码与bean 中的方法和构造方法联系起来看就比较容易了。第一个参数是type,也就是<f:facet name="root">对应的如何渲染的部分;第二个参数是description,也就是tree要显示的内容;第三个参数是treeNode的ID;第四个参数表示是否有下级节点。


<!----> Technorati : jsf, myfaces

分享到:
评论
1 楼 caoxiaohui 2009-04-02  
为什么写的都是一样的呢,都是这一个版本的!!!

相关推荐

    jmock-1.2.0.jar

    Maven-Central / org.apache.maven.shared / maven-dependency-tree 1.21.1 Maven-Central / org.apache.myfaces.core / myfaces-api 2.1.72.1.62.1.52.1.42.1.31.2.2 Maven-Central / org.apache.myfaces.core / ...

    tomahawk20-1.1.11-bin.zip

    2. Tomahawk组件库的使用,包括如何在页面上添加和配置CheckboxTree。 3. CSS和JavaScript的使用,以定制树形结构的样式和交互行为。 4. JavaBeans和Managed Beans的概念,用于处理后台逻辑和数据模型。 5. 数据绑定...

    JSF实现,里边有很多JSF工程用到的Jar包

    2. **Component Tree**:JSF使用组件树来构建用户界面。每个组件都有属性、事件和行为,可以嵌套形成复杂的UI结构。 3. **View Handling**:视图处理涉及创建、更新和管理视图状态。JSF会将用户界面的状态保存在...

    JSF树型菜单.rar

    树型菜单在JSF中的实现通常依赖于特定的组件库,如PrimeFaces、RichFaces或MyFaces等。这些组件库提供了丰富的UI组件,包括树形组件,可以方便地在JSF页面上展示数据。 首先,我们来看“JSF树”的概念。JSF树组件...

    jsf需要全部包

    - 它的核心组成部分包括Facelets(视图层)、Managed Beans(业务逻辑层)和Component Tree(组件树)。 - JSF使用XML配置文件定义UI组件和它们之间的关系,以及与后端Bean的交互。 2. **JSF组件库**: - JSF...

Global site tag (gtag.js) - Google Analytics