Apache Struts 2 Documentation > Home > Guides > Tag Developers Guide > Struts Tags > Tag Reference > UI Tag Reference > tree
Added by Rene Gielen, last edited by Dave Newton on Apr 02, 2007  (view change) show comment

Description

Renders a tree widget with AJAX support.

The "id "attribute is normally specified(recommended), such that it could be looked up using javascript if necessary. The "id" attribute is required if the "selectedNotifyTopic" or the "href" attributes are going to be used.

Quick Example

This example describes basic usage of the <s:tree.../> tag showing both the model behind the tree and the JSP fragment that uses it. This section of the documentation is a work-in-progress; more to follow.

Backing Model
/**
 * In this example it is assumed that the backing POJO is a tree-like structure
 * consisting of same-type elements, roughly like the following, with getters
 * and setters not shown for clarity.
 *
 * This could be, say, a Hibernate/etc. POJO stored in a database and loaded lazily, etc.
 *
 * TODO Determine allowable collection types; I know for a fact Set works.
 */
public class TreeModel {
    private Long _id;                 // Node's ID.
    private String _name;             // Node's name property.
    private Set<TreeModel> _children; // Node's children.
}
Action
/**
 * Fragment of Action class showing the minimum necessary to support the
 * following JSP code. Getters, setters, functionality not shown.
 */
public class ShowTreeAction {
    private TreeModel _rootNode;      // Top-level tree node.
}
JSP
<!-- 
  - @attrib rootNode 
  -             OGNL value holding top-level tree node.
  - @attrib childCollectionProperty 
  -             Property of rootNode containing child nodes.
  - @attrib nodeIdProperty
  -             Property of each node containing "value" of node, like an ID.
  - @attrib nodeTitleProperty
  -             Property of each node containing tree label text.
  -->
<s:tree theme="ajax"
        rootNode="%{rootNode}"
        childCollectionProperty="children"
        nodeIdProperty="id"
        nodeTitleProperty="name">
</s:tree>

Parameters

Name

Required

Default

Evaluated

Type

Description

accesskey false true String Set the html accesskey attribute on rendered html element
blankIconSrc false true String Blank icon image source.
childCollectionProperty false true String The childCollectionProperty property.
collapsedNotifyTopics false true String Comma separated lis of topics to be published when a node is collapsed. An object with a 'node' property will be passed as parameter to the topics.
cssClass false true String The css class to use for element
cssStyle false true String The css style to use for element
disabled false true String Set the html disabled attribute on rendered html element
errorNotifyTopics false true String Comma delimmited list of topics that will published after the request(if the request fails).Only valid if 'href' is set
expandIconSrcMinus false true String Expand icon image source.
expandIconSrcPlus false true String Expand Icon image source.
expandedNotifyTopics false true String Comma separated lis of topics to be published when a node is expanded. An object with a 'node' property will be passed as parameter to the topics.
gridIconSrcC false true String Image source for under child item child icons.
gridIconSrcL false true String Image source for last child grid.
gridIconSrcP false true String Image source for under parent item child icons.
gridIconSrcV false true String Image source for vertical line.
gridIconSrcX false true String Image source for grid for sole root item.
gridIconSrcY false true String Image source for grid for last root item.
href false true String Url used to load the list of children nodes for an specific node, whose id will be passed as a parameter named 'nodeId' (empty for root)
iconHeight false 18px true String Icon height
iconWidth false 19px true String Icon width
id false true String The id to use for the element
javascriptTooltip false false true Boolean Use JavaScript to generate tooltips
key false true String Set the key (name, value, label) for this particular component
label false true String Label expression used for rendering a element specific label
labelSeparator false : true String String that will be appended to the labe
labelposition false true String Define label position of form element (top/left)
name false true String The name to set for element
nodeIdProperty false true String The nodeIdProperty property.
nodeTitleProperty false true String The nodeTitleProperty property.
onblur false true String Set the html onblur attribute on rendered html element
onchange false true String Set the html onchange attribute on rendered html element
onclick false true String Set the html onclick attribute on rendered html element
ondblclick false true String Set the html ondblclick attribute on rendered html element
onfocus false true String Set the html onfocus attribute on rendered html element
onkeydown false true String Set the html onkeydown attribute on rendered html element
onkeypress false true String Set the html onkeypress attribute on rendered html element
onkeyup false true String Set the html onkeyup attribute on rendered html element
onmousedown false true String Set the html onmousedown attribute on rendered html element
onmousemove false true String Set the html onmousemove attribute on rendered html element
onmouseout false true String Set the html onmouseout attribute on rendered html element
onmouseover false true String Set the html onmouseover attribute on rendered html element
onmouseup false true String Set the html onmouseup attribute on rendered html element
onselect false true String Set the html onselect attribute on rendered html element
openTemplate false true String Set template to use for opening the rendered html.
required false false true Boolean If set to true, the rendered element will indicate that input is required
requiredposition false true String Define required position of required form element (left|right)
rootNode false true String The rootNode property.
selectedNotifyTopics false true String Comma separated lis of topics to be published when a node is selected. An object with a 'node' property will be passed as parameter to the topics.
showGrid false true true Boolean Show grid
showRootGrid false true String The showRootGrid property (default true).
tabindex false true String Set the html tabindex attribute on rendered html element
template false true String The template (other than default) to use for rendering the element
templateCssPath false {contextPath}/struts/tree.css. true String Template css path
templateDir false true String The template directory.
title false true String Set the html title attribute on rendered html element
toggle false fade true String The toggle property (either 'explode' or 'fade')
toggleDuration false 150 true String Toggle duration in milliseconds
tooltip false true String Set the tooltip of this particular component
tooltipConfig false true String Deprecated. Use individual tooltip configuration attributes instead.
tooltipCssClass false StrutsTTClassic true String CSS class applied to JavaScrip tooltips
tooltipDelay false Classic true String Delay in milliseconds, before showing JavaScript tooltips
tooltipIconPath false true String Icon path used for image that will have the tooltip
treeCollapsedTopics false true String Deprecated. Use 'collapsedNotifyTopics' instead.
treeExpandedTopics false true String Deprecated. Use 'expandedNotifyTopics' instead.
treeSelectedTopic false true String Deprecated. Use 'selectedNotifyTopics' instead.
value false true String Preset the value of input element.

Examples

Tree loaded statically

<s:tree id="..." label="..."> <s:treenode id="..." label="..." /> <s:treenode id="..." label="..."> <s:treenode id="..." label="..." /> <s:treenode id="..." label="..." /> &;lt;/s:treenode> <s:treenode id="..." label="..." /> </s:tree>