`
zengjinliang
  • 浏览: 307368 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多
tree2是Myfaces的tomahawk控件中的一个,在使用tomahawk控件之前一定先确定已经按照myfaces的要求配置好web.xml文件。
Myfaces网站tomahawk栏目的Extensions Filter 子栏目中有如下一段话:
If you just use standard JSF component, but don't use any MyFaces' extended component (beginning with t:),
then you don't need the Extensions Filter.
However, if you use some of the MyFaces' extended components like t:inputFileUpload, t:inputHTtml, t:inputCalendar, ...
then you most likely need to have this filter configured in your webapp.
大概意思是,如果你在项目中没有使用到Myfaces的扩展组件(t:开头的),则你不需要配置这个Filter.
可是,如果你用了Myfaces的扩展组件,你必须为你的web程序配置这个Filter.
配置如下:
<filter>
    
<filter-name>MyFacesExtensionsFilter</filter-name>
    
<filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
    
<init-param>
        
<param-name>maxFileSize</param-name>
        
<param-value>20m</param-value>
        
<description>Set the size limit for uploaded files.
            Format: 10 - 10 bytes
                    10k - 10 KB
                    10m - 10 MB
                    1g - 1 GB
        




</description>
    
</init-param>

</filter>



<!-- extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages  -->

<filter-mapping>
    
<filter-name>MyFacesExtensionsFilter</filter-name>
    
<!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
    
<servlet-name>Faces Servlet</servlet-name>

</filter-mapping>



<!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.)  -->

<filter-mapping>
    
<filter-name>MyFacesExtensionsFilter</filter-name>
    
<url-pattern>/faces/myFacesExtensionResource/*</ url-pattern>

</filter-mapping>

要使用MyFaces的tomahawk控件,要在页面引用<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>。
在页面中添加tree2的标签:

<t:tree2 id="sortTree" var="node" varNodeToggler="t" showRootNode="false" value="#{tree.treeData}">



</t:tree2>
建立托管Bean,用于填充tree。
public class TreeBacker implements Serializable

{
    
public TreeNode getTreeData ( )
    
{
        TreeNode treeData 
= new TreeNodeBase ( "foo-folder" , "Inbox" , false ) ;

        TreeNodeBase personNode 

= new TreeNodeBase("person""Eddie L"false);
        
//personNode.getChildren().add(new TreeNodeBase("document","Eddie doc one", true));

        TreeNodeBase doc = new TreeNodeBase("document","Eddie doc one"true);
        doc.setIdentifier(
"No.1");
        personNode.getChildren().add(doc);
        treeData.getChildren().add(personNode);
        
        System.out.println ( 



"Create Tree ..ok" ) ;
        
return treeData ;
    }

}

其中TreeNodeBase personNode = new TreeNodeBase("person", "Eddie L", false);中的"person"的作用是表示渲染得时候显示什么样式,
跟页面中<f:facet name="person"></f:facet>相对应。
在页面中

<f:facet name="person">
    
<h:panelGroup>
        
<f:facet name="expand">
            
<t:graphicImage value="../images/person.png" rendered="#{t.nodeExpanded}" border="0" />
        
</f:facet>
        
<f:facet name="collapse">
            
<t:graphicImage value="../images/person.png" rendered="#{!t.nodeExpanded}" border="0" />
        
</f:facet>
        
<h:outputText value="#{node.description}" styleClass="nodeFolder" />
    
</h:panelGroup>

</f:facet>

<t:graphicImage value="../images/person.png" rendered="#{t.nodeExpanded}" border="0" />显示Tree每一个节点的图片。rendered属性的意思是是否渲染的意思,
jsf中渲染的意思是把jsf组件树当前的状态转换成html。在jsf的生命周期里,渲染响应在最后一个周期,rendered值为false在渲染相应这个周期就不运行。
在处理叶子节点上,需要特殊的注意。因为对叶子节点是需要操作的。可能需要点击叶子节点连接到一个页面,或者执行某些action等。
<f:facet name="document">
    
<h:panelGroup>
        
<h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}" action="#{tree.okListener}" id="clickbutton">
            
<t:graphicImage value="../images/document.png" border="0" />
            
<h:outputText value="#{node.description}" />
            
<f:param name="docNum" value="#{node.identifier}" />
        
</h:commandLink>
    
</h:panelGroup>

</f:facet>
commandLink标记可以有n个参数,参数分为参数名和参数值。在程序里可以读取。
编写action事件:okListener
FacesContext context = FacesContext.getCurrentInstance ( ) ;//取得上下文


String a 
= context.getExternalContext ( ).getRequestParameterMap ( )
                .get ( 
"docNum" ).toString ( ) ;

a的值就是docNum的值。
identifier的值在创建树的时候一起加进去的:
TreeNodeBase doc = new TreeNodeBase("document","Eddie doc one", true);
doc.setIdentifier("No.1");


这样。一个tree2的应用基本就算ok了。



Eddie Lee 2006-01-05 21:34 发表评论

























分享到:
评论

相关推荐

    matlab开发-struct2tree

    在MATLAB编程环境中,`struct2tree`是一个用于将结构体数据转换成树形图(uitree)的实用工具。这个工具特别适用于处理和可视化复杂的数据结构,其中数据以结构体的形式存储。以下是对`struct2tree`及其相关概念的...

    js tree,checkbox tree

    2. **配置选项**:jstree提供大量的配置选项来定制树的行为,例如`checkbox`配置项用于启用复选框功能。你可以设置`three_state`为`true`,使得节点的选择状态会影响到其父节点和子节点。`tie_selection`选项决定...

    speedtree帮助教程

    2. 导入导出:SpeedTree支持与其他3D软件如Unity、Unreal Engine的无缝对接,可以方便地将树木模型导入到游戏引擎中使用。 五、汉化教程价值 本汉化教程详细解读了SpeedTree的各项功能,用中文解释了原本可能难以...

    jsTree中文文档

    **jsTree 中文文档概述** jsTree 是一个流行的JavaScript库,用于在网页上创建交互式的树状视图。它主要用于组织结构化的数据,如文件系统、数据库目录或自定义项目结构。jsTree 支持多种操作,包括点击、拖放、...

    PowerTree中文教程

    "PowerTree中文教程" PowerTree 是一种强大的电源设计和分析工具,旨在帮助设计工程师和电源完整性工程师更好地设计和优化配电网络 (PDN)。本教程将详细介绍 PowerTree 的基本概念、工作原理、功能特点和应用场景。...

    device-tree-xlnx-master_tree_devicetree2018.3_

    设备树(Device Tree)在嵌入式Linux系统中扮演着至关重要的角色,它是一种数据结构,用于描述硬件配置,使得操作系统内核能够更好地理解和管理硬件资源。`device-tree-xlnx-master_tree_devicetree2018.3_`这个标题...

    jsTree中文api

    **jsTree API详解** jsTree 是一个流行的JavaScript库,用于创建、操作和展示交互式的HTML树状视图。它提供了一套丰富的API,使得开发者能够方便地实现树形结构的各种功能,如添加、删除、修改节点,以及节点的移动...

    js jsontree2list list2jsontree方法

    关于js的方法,包括将树形结构数据转化为具有父子关联关系的平级数据结构、以及将具有父子关联关系的数据结构转化为树形结构。

    tree(c++ tree容器)

    标题提到的"tree(c++ tree容器)"是一个第三方实现,旨在为C++开发者提供一个类似于STL接口的树容器,方便用户在项目中构建和操作树形数据。 这个源码库的亮点在于它的用法与C++标准库中的其他容器类似,如vector和...

    EasyUI实现异步加载tree(整合Struts2)源码

    在本文中,我们将深入探讨如何使用EasyUI框架实现异步加载Tree组件,并将其与Struts2框架整合。EasyUI是一个基于jQuery的轻量级前端框架,提供了丰富的UI组件,包括Tree,它能够方便地构建出层次结构的数据展示。而...

    jsTree动态tree

    2. 加载必要的jsTree CSS和JavaScript文件。 3. 初始化jsTree,指定配置项和数据源。 示例代码: ```html &lt;div id="jstree"&gt; $(function () { $('#jstree').jstree({ 'core': { 'data': [ // JSON数据源 ] ...

    Tree,三种tree插件

    2. **Tree**: "Tree"在这里可能是一个通用术语,也可能指的是一款特定的插件,例如jQuery Tree插件。这类插件通常基于HTML、CSS和JavaScript构建,用于在网页上展示和操作树状数据。它们可能提供丰富的功能,如...

    el-tree-selected-tree

    2. `package-lock.json`和`package.json`:它们管理项目依赖,包括Element UI和其他可能的npm包。 3. `README.md`:这是一个项目说明文件,可能包含了如何运行和使用此功能的指南。 4. `src`目录:存放项目的源代码...

    EasyTree的使用教程

    2. **基本配置**:讲解如何初始化EasyTree,设置根节点、默认展开状态等参数。 3. **数据绑定**:展示如何将后台返回的数据转化为EasyTree所需的JSON格式,并进行数据绑定。 4. **事件监听**:讲解如何监听节点点击...

    jstree struts2

    **JSTree与Struts2整合详解** JSTree是一款基于JavaScript的开源库,用于创建交互式的树形结构。它提供了丰富的API和多种主题,使得在网页中展示和操作层次数据变得简单。而Struts2则是一个强大的MVC(Model-View-...

    手机端js tree

    2. JavaScript:js Tree的核心是JavaScript代码,它负责处理用户交互、数据加载和动态更新。使用事件监听器来捕捉用户的触摸或点击事件,然后执行相应的动作,如展开节点或切换选中状态。 3. 数据源:树的数据通常...

    Excel 建模插件 treeplan

    2. **概率与收益计算**:在每个决策节点,用户可以输入不同决策路径的概率和预期收益。TreePlan会自动计算各路径的期望值,帮助用户评估每个决策的潜在价值。 3. **敏感性分析**:TreePlan允许用户进行敏感性分析,...

    英文语料库词汇标注软件TreeTagger

    2. **多语言支持**:除了英文,TreeTagger还支持多种其他语言,如德语、法语、西班牙语等,这使得它成为一个多语种处理的强大工具。 3. **灵活性**:用户可以通过调整参数来优化模型,以适应特定任务或特定语言的...

    orgtree实现树列表基本功能

    `orgtree`是一个专门用于实现树列表功能的工具,类似于前端库`jquery ztree`,提供了简便的方式来创建和管理树列表。在本篇中,我们将深入探讨`orgtree`的基本原理、使用方法以及如何通过JSON数据来驱动树列表。 ...

Global site tag (gtag.js) - Google Analytics