blob: c2b02f3294ecf75c406d85f389e7cfc343790c6d [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="Date-Revision-yyyymmdd" content="20140918"/>
<meta http-equiv="Content-Language" content="en"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Tag Developers Guide</title>
<link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
<link href="/css/main.css" rel="stylesheet">
<link href="/css/custom.css" rel="stylesheet">
<link href="/highlighter/github-theme.css" rel="stylesheet">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript" src="/js/community.js"></script>
</head>
<body>
<a href="http://github.com/apache/struts" class="github-ribbon">
<img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>
<header>
<nav>
<div role="navigation" class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
Menu
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
</div>
<div id="struts-menu" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
Home<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/index.html">Welcome</a></li>
<li><a href="/download.cgi">Download</a></li>
<li><a href="/releases.html">Releases</a></li>
<li><a href="/announce-2021.html">Announcements</a></li>
<li><a href="http://www.apache.org/licenses/">License</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
<li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
</ul>
</li>
<li class="dropdown">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
Support<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/mail.html">User Mailing List</a></li>
<li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
<li><a href="/security.html">Reporting Security Issues</a></li>
<li class="divider"></li>
<li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
<li class="divider"></li>
<li><a href="/maven/project-info.html">Maven Project Info</a></li>
<li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
<li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
</ul>
</li>
<li class="dropdown">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
Documentation<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/birdseye.html">Birds Eye</a></li>
<li><a href="/primer.html">Key Technologies</a></li>
<li><a href="/kickstart.html">Kickstart FAQ</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
<li class="divider"></li>
<li><a href="/getting-started/">Getting Started</a></li>
<li><a href="/security/">Security Guide</a></li>
<li><a href="/core-developers/">Core Developers Guide</a></li>
<li><a href="/tag-developers/">Tag Developers Guide</a></li>
<li><a href="/maven-archetypes/">Maven Archetypes</a></li>
<li><a href="/plugins/">Plugins</a></li>
<li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
<li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
<li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
</ul>
</li>
<li class="dropdown">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
Contributing<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="/youatstruts.html">You at Struts</a></li>
<li><a href="/helping.html">How to Help FAQ</a></li>
<li><a href="/dev-mail.html">Development Lists</a></li>
<li><a href="/contributors/">Contributors Guide</a></li>
<li class="divider"></li>
<li><a href="/submitting-patches.html">Submitting patches</a></li>
<li><a href="/builds.html">Source Code and Builds</a></li>
<li><a href="/coding-standards.html">Coding standards</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
<li class="divider"></li>
<li><a href="/release-guidelines.html">Release Guidelines</a></li>
<li><a href="/bylaws.html">PMC Charter</a></li>
<li><a href="/volunteers.html">Volunteers</a></li>
<li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
<li><a href="/updating-website.html">Updating the website</a></li>
</ul>
</li>
<li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
</ul>
</div>
</div>
</div>
</nav>
</header>
<article class="container">
<section class="col-md-12">
<a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-tree-tag.md" title="Edit this page on GitHub">Edit on GitHub</a>
<h1 id="tree">tree</h1>
<blockquote>
<p>NOTE: Ajax template (Dojo plugin) is deprecated and won’t be supported any longer.</p>
</blockquote>
<p><strong>Description</strong></p>
<p>
Renders a tree widget with AJAX support.<p />
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.<p />
</p>
<p><strong>Parameters</strong></p>
<p> <table width="100%">
<tr>
<td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td>
</tr>
<tr>
<td colspan="6">&nbsp;</td>
</tr>
<tr>
<th align="left" valign="top"><h4>Name</h4></th>
<th align="left" valign="top"><h4>Required</h4></th>
<th align="left" valign="top"><h4>Default</h4></th>
<th align="left" valign="top"><h4>Evaluated</h4></th>
<th align="left" valign="top"><h4>Type</h4></th>
<th align="left" valign="top"><h4>Description</h4></th>
</tr>
<tr>
<td align="left" valign="top">accesskey</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">blankIconSrc</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Blank icon image source.</td>
</tr>
<tr>
<td align="left" valign="top">childCollectionProperty</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The childCollectionProperty property.</td>
</tr>
<tr>
<td align="left" valign="top">collapsedNotifyTopics</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">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.</td>
</tr>
<tr>
<td align="left" valign="top">cssClass</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The css class to use for element</td>
</tr>
<tr>
<td align="left" valign="top">cssErrorClass</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The css error class to use for element</td>
</tr>
<tr>
<td align="left" valign="top">cssErrorStyle</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The css error style definitions for element to use</td>
</tr>
<tr>
<td align="left" valign="top">cssStyle</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The css style to use for element</td>
</tr>
<tr>
<td align="left" valign="top">disabled</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">errorNotifyTopics</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Comma delimmited list of topics that will published after the request(if the request fails).Only valid if 'href' is set</td>
</tr>
<tr>
<td align="left" valign="top">errorPosition</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Define error position of form element (top|bottom)</td>
</tr>
<tr>
<td align="left" valign="top">expandIconSrcMinus</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Expand icon (-) image source.</td>
</tr>
<tr>
<td align="left" valign="top">expandIconSrcPlus</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Expand Icon (+) image source.</td>
</tr>
<tr>
<td align="left" valign="top">expandedNotifyTopics</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">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.</td>
</tr>
<tr>
<td align="left" valign="top">gridIconSrcC</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Image source for under child item child icons.</td>
</tr>
<tr>
<td align="left" valign="top">gridIconSrcL</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top"> Image source for last child grid.</td>
</tr>
<tr>
<td align="left" valign="top">gridIconSrcP</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Image source for under parent item child icons.</td>
</tr>
<tr>
<td align="left" valign="top">gridIconSrcV</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Image source for vertical line.</td>
</tr>
<tr>
<td align="left" valign="top">gridIconSrcX</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Image source for grid for sole root item.</td>
</tr>
<tr>
<td align="left" valign="top">gridIconSrcY</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Image source for grid for last root item.</td>
</tr>
<tr>
<td align="left" valign="top">href</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">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)</td>
</tr>
<tr>
<td align="left" valign="top">iconHeight</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">18px</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Icon height</td>
</tr>
<tr>
<td align="left" valign="top">iconWidth</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">19px</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Icon width</td>
</tr>
<tr>
<td align="left" valign="top">id</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The id to use for the element</td>
</tr>
<tr>
<td align="left" valign="top">javascriptTooltip</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">Boolean</td>
<td align="left" valign="top">Use JavaScript to generate tooltips</td>
</tr>
<tr>
<td align="left" valign="top">key</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>
</tr>
<tr>
<td align="left" valign="top">label</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Label expression used for rendering an element specific label</td>
</tr>
<tr>
<td align="left" valign="top">labelSeparator</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">:</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">String that will be appended to the label</td>
</tr>
<tr>
<td align="left" valign="top">labelposition</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Define label position of form element (top/left)</td>
</tr>
<tr>
<td align="left" valign="top">name</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The name to set for element</td>
</tr>
<tr>
<td align="left" valign="top">nodeIdProperty</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The nodeIdProperty property.</td>
</tr>
<tr>
<td align="left" valign="top">nodeTitleProperty</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The nodeTitleProperty property.</td>
</tr>
<tr>
<td align="left" valign="top">onblur</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onchange</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onclick</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">ondblclick</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onfocus</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onkeydown</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onkeypress</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onkeyup</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onmousedown</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onmousemove</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onmouseout</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onmouseover</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onmouseup</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">onselect</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">openTemplate</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set template to use for opening the rendered html.</td>
</tr>
<tr>
<td align="left" valign="top">requiredLabel</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">Boolean</td>
<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
</tr>
<tr>
<td align="left" valign="top">requiredPosition</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Define required position of required form element (left|right)</td>
</tr>
<tr>
<td align="left" valign="top">rootNode</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The rootNode property.</td>
</tr>
<tr>
<td align="left" valign="top">selectedNotifyTopics</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">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.</td>
</tr>
<tr>
<td align="left" valign="top">showGrid</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">true</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">Boolean</td>
<td align="left" valign="top">Show grid</td>
</tr>
<tr>
<td align="left" valign="top">showRootGrid</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The showRootGrid property (default true).</td>
</tr>
<tr>
<td align="left" valign="top">style</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td>
</tr>
<tr>
<td align="left" valign="top">tabindex</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">template</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The template (other than default) to use for rendering the element</td>
</tr>
<tr>
<td align="left" valign="top">templateCssPath</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">{contextPath}/struts/tree.css.</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Template css path</td>
</tr>
<tr>
<td align="left" valign="top">templateDir</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The template directory.</td>
</tr>
<tr>
<td align="left" valign="top">title</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the html title attribute on rendered html element</td>
</tr>
<tr>
<td align="left" valign="top">toggle</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">fade</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">The toggle property (either 'explode' or 'fade')</td>
</tr>
<tr>
<td align="left" valign="top">toggleDuration</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">150</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Toggle duration in milliseconds</td>
</tr>
<tr>
<td align="left" valign="top">tooltip</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the tooltip of this particular component</td>
</tr>
<tr>
<td align="left" valign="top">tooltipConfig</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td>
</tr>
<tr>
<td align="left" valign="top">tooltipCssClass</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">StrutsTTClassic</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">CSS class applied to JavaScrip tooltips</td>
</tr>
<tr>
<td align="left" valign="top">tooltipDelay</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">Classic</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td>
</tr>
<tr>
<td align="left" valign="top">tooltipIconPath</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Icon path used for image that will have the tooltip</td>
</tr>
<tr>
<td align="left" valign="top">treeCollapsedTopics</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Deprecated. Use 'collapsedNotifyTopics' instead.</td>
</tr>
<tr>
<td align="left" valign="top">treeExpandedTopics</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Deprecated. Use 'expandedNotifyTopics' instead.</td>
</tr>
<tr>
<td align="left" valign="top">treeSelectedTopic</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Deprecated. Use 'selectedNotifyTopics' instead.</td>
</tr>
<tr>
<td align="left" valign="top">value</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Preset the value of input element.</td>
</tr>
</table>
</p>
<p><strong>Examples</strong></p>
<p>Static tree:</p>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;s:tree</span> <span class="na">id=</span><span class="s">"..."</span> <span class="na">label=</span><span class="s">"..."</span><span class="nt">&gt;</span>
<span class="nt">&lt;s:treenode</span> <span class="na">id=</span><span class="s">"..."</span> <span class="na">label=</span><span class="s">"..."</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;s:treenode</span> <span class="na">id=</span><span class="s">"..."</span> <span class="na">label=</span><span class="s">"..."</span><span class="nt">&gt;</span>
<span class="nt">&lt;s:treenode</span> <span class="na">id=</span><span class="s">"..."</span> <span class="na">label=</span><span class="s">"..."</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;s:treenode</span> <span class="na">id=</span><span class="s">"..."</span> <span class="na">label=</span><span class="s">"..."</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/s:treenode&gt;</span>
<span class="nt">&lt;s:treenode</span> <span class="na">id=</span><span class="s">"..."</span> <span class="na">label=</span><span class="s">"..."</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/s:tree&gt;</span>
</code></pre></div></div>
<p>Dynamic tree (rendered on the server):</p>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;s:tree</span>
<span class="na">id=</span><span class="s">"..."</span>
<span class="na">rootNode=</span><span class="s">"..."</span>
<span class="na">nodeIdProperty=</span><span class="s">"..."</span>
<span class="na">nodeTitleProperty=</span><span class="s">"..."</span>
<span class="na">childCollectionProperty=</span><span class="s">"..."</span> <span class="nt">/&gt;</span>
</code></pre></div></div>
<p>Dynamic tree loaded with AJAX (one request is made for each node):</p>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;s:url</span> <span class="na">id=</span><span class="s">"nodesUrl"</span> <span class="na">namespace=</span><span class="s">"/nodecorate"</span> <span class="na">action=</span><span class="s">"getNodes"</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;div</span> <span class="na">style=</span><span class="s">"float:left; margin-right: 50px;"</span><span class="nt">&gt;</span>
<span class="nt">&lt;sx:tree</span> <span class="na">id=</span><span class="s">"tree"</span> <span class="na">href=</span><span class="s">"%{#nodesUrl}"</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;/div&gt;</span>
On this example the url specified on the "href" attibute will be called to load
the elements on the root. The response is expected to be a JSON array of objects like:
[
{
label: "Node 1",
hasChildren: false,
id: "Node1"
},
{
label: "Node 2",
hasChildren: true,
id: "Node2"
},
]
"label" is the text that will be displayed for the node. "hasChildren" marks the node has
having children or not (if true, a plus icon will be assigned to the node so it can be
expanded). The "id" attribute will be used to load the children of the node, when the node
is expanded. When a node is expanded a request will be made to the url in the "href" attribute
and the node's "id" will be passed in the parameter "nodeId".
The children collection for a node will be loaded only once, to reload the children of a
node, use the "reload()" function of the treenode widget. To reload the children nodes of "Node1"
from the example above use the following javascript:
dojo.widget.byId("Node1").reload();
</code></pre></div></div>
</section>
</article>
<footer class="container">
<div class="col-md-12">
Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
All Rights Reserved.
</div>
<div class="col-md-12">
Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
trademarks of The Apache Software Foundation.
</div>
<div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>
<script>!function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = "//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>
<div id="fb-root"></div>
<script>(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
</body>
</html>