||JSP Tree Project
Welcome to JSP Tree (Release: 1.0-b6, 2005-Jan-30)
I was looking for a JSP Tree tag in order to build in hierarchy support into website.
But all solutions I found use Java Script language very intensively for tree rendering.
Very often Java Script is not acceptable by number of reasons, so pure Java solution,
which is not using Java Script at all, is a quite necessary solution for many JSP developers.
I started to write my own solution and now I am proud to public JSP Tree as an open source project.
JSP Tree is intended for use by Java web application developers. JSP Tree operates only with HTML tags
to represent its state, so user of such tree will reload page on every click in order to
get more o less information. It has several different skins that can be changed depending on configuration
settings. Developers could have easily built in JSP tree now whether as JSP tag or as servlet component if they desired.
JSP tree is good for trees with dynamic models. It is very easy to add or remove new nodes during interaction with user.
JSP Tree works fine with very large trees when it is not appropriate to load the whole tree into the browser at once, as in the case with the Java Script trees. The JSP Tree displays only expanded nodes, and therefore it produces html code only for those nodes, thus speeding up the rendering of the tree and reducing network traffic.
Since the JSP Tree states are stored in the http session, the user can browse away from the tree page but the tree states will not be lost. Having returned to the tree page the user finds the tree in exactly the same state.
If Java Script is not enabled in the userís browser it does not break JSP Tree up.
The HTML presentation of JSP Tree is not hard-coded and can be easily tuned by set of custom templates.
It is possible to set initial tree state from XML document, that can be very convenient for trees with static models.
If you want to see example of working JSP Tree, you can find it at
Note, that this link always contains the latest build of JSP Tree, so that jsptree-example
web application, which is attached to last release can be older than that you can find
at this link.
If you want to have the latest version of JSP Tree, welcome to CVS access.
All source code with examples of integrating JSP Tree into JSP pages and into servlets can be found at
download files page.
Release history and future plans:
Release: 1.0-b1, 2002-Dec-20.
Release: 1.0-b2, 2003-March-17.
Release: 1.0-b3, 2003-May-20
- Log4J integration
- Ability to specify user's node renderer(skin) without having to hack into source code
- Tree Factory retrofitted in order to support multiple tree instances
- Support of XML tree factory
- JSP Tree servlet example was added
Release: 1.0-b4, 2003-Jul-23
- Introduced html templates for tree's nodes, in order to avoid keeping html code in java classes (renderers)
- Ability to use JSP Tree with Struts & Tiles.
- Extended example web application http://jsptree.kamenskyJ.net.ru
- Ability to specify opened nodes for XML tree.
Release(bug fix): 1.0-b5, 2004-Jul-5
- Ability to specify custom node renderer(skin)
- Refactoring of Skin interface
- Fixing bug: FolderTemplateSkin is not thread safe
- All generated URL should be encoded with HttpResponse.encodeRedirectURL()
- The package net.sf.jsptree.tree will be refactored completely
- Writing JavaDoc
Release: 1.0-b6, 2005-Jan-30
- Fixed DefaultTreeNode.clone() method that mistakenly copied new generated child nodes into old one.
It caused a serious bug when nodes' states were shared between multiple sessions.
- An arbitrary order of jsp tag's attributes caused a NullPointerExceptions. Fixed.
- Tree's structure and its current state(opened and selected nodes) are completely decoupled.
It is possible now to share tree structure between multiple concurrent sessions without having to
share actual tree state (different users see different opened and selected nodes). It helps to
alleviate the memory problem in case of big data structures.
- Added an ability to set up a custom Comparator; it helps to sort child nodes in the correspondence
with a desired strategy.
- Added an ability to reference custom values being specified in the xml data without writing
a custom renderer(skin)
Anonymous CVS Access
This JSP Tree SourceForge.net CVS repository can be checked out through anonymous (pserver) CVS
with the following instruction set. When prompted for a password for anonymous, simply press the Enter key.
cvs -d:pserver:firstname.lastname@example.org:/cvsroot/jsptree login
cvs -z3 -d:pserver:email@example.com:/cvsroot/jsptree co jsptree
Discussions, bug reports, contact information
Interaction is possible via the facilities offered by SourceForge. Please visit
the project site there, following the link to
. You will find:
You can also contact me sending mail to modano (at) users.sourceforge.net
(in English or in Russian)
JSP Tree is written by Vladislav Kamensky, and is available under a
Apache Software License.
© 2002-2005 Vladislav Kamensky