Thursday, August 27, 2009

Tree Structure in JSP

Hi,

Its very useful if you want to show some structure in hierarchical way.

Requirement:treetag.jar and taglib49.tld (I can't upload here these files,you can download it form internet)


edit your web.xml file:
description This is the tree structure description
display-name Deepak display-name
servlet-name xmlTree servlet-name
servlet-class xmlTree servlet-class
servlet
servlet-mapping tree servlet-name
url-pattern /run1 url-pattern
servlet-mapping
taglib
taglib-uri /com/cj/tree taglib-uri
taglib-location /WEB-INF/Tag/taglib49.tld taglib-location
taglib
Now write in your jsp following line:
for JSP or in struts application,use following lines:
<%
root=new com.cj.tree.TreeBean();
root.setCode("Root");
root1=new com.cj.tree.TreeBean();
root1.setCode("deepak pandey");

rec("deepak pandey",root1);//this fuction is defined,because i want to get tree dynamically

root.addChild(root1);
%>
<%!
ResultSet rs=null;
com.cj.tree.TreeBean root;
com.cj.tree.TreeBean root1;
void rec(String s1,com.cj.tree.TreeBean root1)
{
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/pms1?user=root&password=123");
PreparedStatement ps1=con.prepareStatement("SELECT user_Id,project_name FROM validate v where permittedby=? and Project_Name='PMS'");
ps1.setString(1,s1);
ResultSet rs1=ps1.executeQuery();
while(rs1.next())
{
System.out.println(rs1.getString(1));
com.cj.tree.TreeBean node11=new com.cj.tree.TreeBean();
node11.setCode(""+rs1.getString(1));
rec(rs1.getString(1),node11);
root1.addChild(node11);
}
}
catch(Exception e1){System.out.println("error is"+e1);}
}
%>
tree:createTree defaultConnectors="false" treePicture="order_asc.gif" nodePicture="order_asc.gif" openPicture="order_desc.gif" verticalConnector="vertical.gif" middleConnector="middle.gif" modelBean="<%=root%>" dhtml="true"

Another way :
<%= "This is Tree Structure" %>
tree:createTree dhtml="true"//for image etc write in this tag
tree:addNode code="Deep"
tree:addNode code="Deepak1.1"
tree:addNode code="Deepak1.2"
tree:addNode code="Deepak1.2.1"
tree:addNode code="Deepak1.2.2"
tree:addNode>
tree:addNode code="Deepak1.3"
tree:addNode>
tree:addNode code="Deepak2"
tree:createTree>
tree:createTree>
For any query,you can ask.