powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сделать TreeView на jsp странице
25 сообщений из 27, страница 1 из 2
Сделать TreeView на jsp странице
    #32864258
xa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть древовидная структура в одной табличке
типа:
CREATE TABLE(id INT,parentId INT,name VARCHAR(50))

Какие есть инструменты чтобы побыстрому визуализировать это дерево
в сервлете или jsp страничке.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #32864280
ты не поверишь, но это так и называется - http://jsptree.sourceforge.net/

на примеры (как это выглядит в действии) можно посмотреть тут - http://jsptree.kamenskyj.net.ru/jsp/treeFolder.jsp

вещь очень симпатичная. до нее у меня было написана своя реализация,
жестко привязанная к структуре дерева и данных БД. потом, когда возникла
необходимость расширить функционал - воспользовался приведенным
продуктом. багов не обнаруживали.
визуализируется по-быстрому. в jsp-документе выглядит как custom tag.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #32864393
xa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заценил.
Эта, наскока я понял, мне надо скормить детищу уважаемого Каменского
XML деревяшечку и все будет тип-топ.

Не подскажите, как быстро построить деревяшечку из вышеописанной таблички?
(Просто никогда до этого не занимался этими весчами)
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #32864423
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XAЗаценил.
Эта, наскока я понял, мне надо скормить детищу уважаемого Каменского
XML деревяшечку и все будет тип-топ.

Не подскажите, как быстро построить деревяшечку из вышеописанной таблички?
(Просто никогда до этого не занимался этими весчами)
не понял. хотя, может, у меня версия старая. в моей про xml нет ничего :)
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #32864504
xa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хмм... странно.
Есть деревяшка xmlTree.xml
На основе ее визуализируется дерево.
Мне в принципе нравица. Начну учится xml строить... эх построить бы за сегодня:)

Киньте уже сцылочки полезные чтобы я долго не мучался.
Что-нибудь типа : скачать http://blablabla.bla и API к нему - и будет тебе щастье.

org.w3c.dom мне поможет?
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #32864543
xa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы пару строчек кода, чтобы понять как строится это :


<?xml version="1.0" encoding="windows-1251"?>
<!--DOCTYPE tree-set SYSTEM "http://jsptree.sourceforge.net/xml_jsp_tree.dtd"-->

<tree-set>

<tree name="servletTree">
<node id="1" label="LABEL1" href="?label=LABEL1">
<node id="2" label="LABEL2" href="?label=LABEL2"/>
<node id="3" label="LABEL3" href="?label=LABEL3"/>
<node id="4" label="JSPTREE" href="http://jsptree.sourceforge.net" contextRelative="false">
<node id="5" label="LABEL5" href="?label=LABEL5"/>
</node>
</node>
<open-node>
<node id="1"/>
</open-node>
</tree>


</tree-set>



пока еще не догнал.. как это построить а потом еще и в файл сохранить
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #32864603
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты имеешь в виду, что данные там определяются в xml? то есть -
структура дерева?

у меня для построения дерева используется java-код.

дело делается так :)

пусть у тебя описаны группы неких продуктов. структура таблицы - твоя,
которую ты в первом посте описал.

пишется класс ProductTreeFactory:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
 package  net.fpestde.test.tree;

 import  ...;

 public   class  ProductTreeFactory  extends  AbstractTreeFactory {
   public   static   final  String TREE_NAME = "sptree";

  // получение списка групп у которых парентом является parentGroup
   protected  List getGroups(ProductGroup parentGroup)  throws  SQLException {
    String qry = "select * from your_groups where parentId ";

    String orderClause = "order by name";

    qry += (parentGroup ==  null ) ?
            "is null " + orderClause :
            "= ? " + orderClause;
    
    Connection con = ...;

    List list =  new  ArrayList();

     try  {
      PreparedStatement st = con.prepareStatement(qry);
       if  (parentGroup !=  null )
        st.setLong( 1 , parentGroup.getId());

      ResultSet rs = st.executeQuery();
       while  (rs.next()) {
        String name = rs.getString("name");
         int  id = rs.getInt("id");
         int  parentId = rs.getInt("parentId");
        ProductGroup group =  new  ProductGroup(id, name, parentId);
        list.add(group);
      }
      rs.close();
    }  finally  {
      con.close();
    }
     return  list;
  }

   protected  String getHref() {
     return  "some.servlet.which.show.products.in.group.do";
  }
}

класс группы ProductGroup (написан в соотв. JavaBeans) понятен из
предыдущего кода. класс AbstractTreeFactory реализует интерфейс
TreeFactory из указанной библиотеки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
 package  net.fpestde.test.tree;

 import  net.sf.jsptree. ...;
 import  ...;

 public   abstract   class  AbstractTreeFactory  implements  TreeFactory {
   protected  Tree buildedTree;
   protected   boolean  openTree;

   public  Tree getTree(String name) {
    // возвращаем дерево в любом случае :)
     if  (buildedTree ==  null ) {
      buildedTree = buildTree();
    }
     return  buildedTree;
  }

   protected   abstract  List getGroups(ProductGroup parentGroup)  throws  SQLException;

   protected   abstract  String getHref();

   protected  Tree buildTree() {
    JSPTreeNodeImpl node =  new  JSPTreeNodeImpl();
    node.setContextRelative(false);
    node.setId("");
    node.setLabel("");
    
    TreeModel model =  new  TreeModel();
    model.setRoot(node);

     try  {
      List list = getGroups( null );
       for  ( int  i =  0 ; i < list.size(); i++) {
        ProductGroup group = (ProductGroup) list.get(i);
        fillGroup(model, node, group);
      }

    }  catch  (Exception e) {
      // :)
    }

     return  a_model;
  }

   protected   void  fillGroup(TreeModel model, JSPTreeNode parent, ProductGroup group)  throws  Exception {
    JSPTreeNodeImpl node =  new  JSPTreeNodeImpl(String.valueOf(group.getId()), group.getName());

    node.setHref(getHref() + "?gid=" + group.getId());
    node.setContextRelative(false);

    model.addChildToParent(parent, node);

     if  (isOpenTree())
      model.openNode(node);

    List list = getGroups(group);
     for  ( int  i =  0 ; list !=  null  && i < list.size(); i++) {
      ProductGroup g = (ProductGroup) list.get(i);
      fillGroup(model, node, g);
    }
  }

   public  Tree reloadTree() {
     synchronized  ( this ) {
      TreeModel model = (TreeModel) buildTree();
      TreeNode root = model.getRootNode();
       if  (buildedTree !=  null ) {
        List children = root.getChildNodes();
         for  ( int  i =  0 ; i < children.size(); i++) {
          TreeNode node = (TreeNode) children.get(i);
          checkOpened(model, node);
        }
      }

      buildedTree = model;
    }
     return  buildedTree;
  }

   private   void  checkOpened(TreeModel tree, TreeNode node) {
     if  (buildedTree.isNodeOpened(node.getData()))
      tree.openNode(node.getData());

    List children = node.getChildNodes();
     for  ( int  i =  0 ; i < children.size(); i++) {
      TreeNode treeNode = (TreeNode) children.get(i);
      checkOpened(tree, treeNode);
    }
  }

   public   boolean  isOpenTree() {
     return  openTree;
  }

   public   void  setOpenTree( boolean  openTree) {
     this .openTree = openTree;
  }
}

хух... далее. в jsp:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
...
<%
  ProductTreeFactory treeFactory = (ProductTreeFactory) session.getAttribute("myfactory");
  if (treeFactory == null) {
    treeFactory = new ProductTreeFactory();
    session.setAttribute("myfactory", treeFactory);
  }
%>
<jtree:JSPTree name="<%=ProductTreeFactory.TREE_NAME%>"
                     treeFactory="<%=treeFactory%>"
                     startAtDepth="1"
                     imagesPath="images/tree/folder/orange/"
                     templatePath="template/folder/"
                     stateManagerAction="some.servlet.action.do"
                     nodeComparator="net.fpestde.test.tree.GroupComparator"
                     skin="net.fpestde.test.tree.GroupTreeSkin"/>

...

теперь еще пара классов :)

net.fpestde.test.tree.GroupComparator
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 package  net.fpestde.test.tree;

 import  net.sf.jsptree. ...;

 import  java.util.Comparator;

 public   class  GroupComparator  implements  Comparator{
   public   int  compare(Object o1, Object o2) {
     if  (!(o1  instanceof  TreeNode && o2  instanceof  TreeNode))
       return   0 ;

    TreeNode node1 = (TreeNode) o1;
    TreeNode node2 = (TreeNode) o2;

    JSPTreeNode jsp_node1 = (JSPTreeNode) node1.getData();
    JSPTreeNode jsp_node2 = (JSPTreeNode) node2.getData();

     return  jsp_node1.getLabel().compareTo(jsp_node2.getLabel());
  }  
}

net.fpestde.test.tree.GroupTreeSkin
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 package  net.fpestde.test.tree;

 import  net.sf.jsptree. ...;

 import  ...;

 public   class  GroupTreeSkin  extends  FolderTemplateSkin {
  // пример реализации этого класса можно посмотреть в примерах пакета
  // net.sf.jsptree
  // 
  // у меня время свободное кончилось :)) будут проблемы - пиши
}

вроде все :)

--
Lacrima Mosa Est
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33329725
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вопросик: у меня дерево формируется из базы - запрос к таблице и построение дерева. Все работате отлично. Но! проблемма в том, что дерево загружается один раз, а потом как бы я не обновлял страницу, дерево не перестраивается - т.е. в таблице в базе уже другие данные, а на jsp странице все то же страрое древо, которое загрузилось первый раз. И только после перезапуске Томкета дерево перерисовывается.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 <%
              String imagePath = request.getContextPath()+"/imgs/tree/folder/blue/";
              String SERVER = (String)session.getAttribute("ConStr");
              String LOGIN = (String)session.getAttribute("login");
              String PASSWORD = (String)session.getAttribute("password");
              TestFactory TestFactory1 =  new  TestFactory(SERVER,LOGIN,PASSWORD);

            %>

             <sf:JSPTree name="sharedTree"
                    treeFactory = "<%= TestFactory1 %>"
                    startAtDepth="0"
                    imagesPath="<%=imagePath%>"
                    skin="<%=AbstractSkin.FOLDER_SKIN%>"
                    shareTreeStructure="true"
                    templatePath="net/sf/jsptree/example/template/folder/"/>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
 package  net.sf.jsptree.example;

 import  net.sf.jsptree.component.JSPTreeNodeImpl;
 import  net.sf.jsptree.tree.*;

 import  oracle.*;
 import  java.sql.*;


 public   class  TestFactory  implements  TreeFactory {

     private   static  TreeFactory m_instance =  new  TestFactory();
     private   String USERNAME;
     private   String PASSWORD;
     private   String SERVER;

     public  TestFactory() {
    }
     public  TestFactory(String P_SERVER,String P_USERNAME,String P_PASSWORD) {
      USERNAME =P_USERNAME;
      PASSWORD =P_PASSWORD;
      SERVER = P_SERVER;
    }


     public   static  TreeFactory getInstance() {
         return  m_instance;
    }

     public  TreeStructureModel getTree(String p_name) {
         return  buildTree();

    }

     private  TreeStructureModel buildTree() {
        TreeStructureModel a_tree =  new  TreeModel();

        //  это просто для упрощения, здесь  код для формирования дерева 
       //из базы - т.е. коннект к базе, и считывание данных из древовидной
       // таблицы
         a_tree.setRoot( new  JSPTreeNodeImpl("0","NODE1"));
         a_tree.addChildToRoot( new  JSPTreeNodeImpl("1", "NODE2"));
         a_tree.addChildToParent( new  JSPTreeNodeImpl("1"),  new  JSPTreeNodeImpl("21", "NODE21"));

         return  a_tree;
    }

     public  TreeStateModel getTreeStates(String p_name)  throws  TreeFactoryException {
        DefaultTreeStateModel defaultTreeStateModel =  new  DefaultTreeStateModel();

         return  defaultTreeStateModel;
    }
}

...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33329811
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай в методе buildTree() вывод в лог и посмотри, вызывается он при каждом запросе или нет, скорее всего нет.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33329825
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessenСделай в методе buildTree() вывод в лог и посмотри, вызывается он при каждом запросе или нет, скорее всего нет.
Щас спробую
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33329892
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buildTree() не вызывается при каждом запросе, как мне сделать чтобы вызывался?
Хотя я немного не понимаю почему?-ведь я же каждый раз создаю объект
класса TestFactory
TestFactory TestFactory1 = new TestFactory(SERVER,LOGIN,PASSWORD)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<%
              String imagePath = request.getContextPath()+"/imgs/tree/folder/blue/";
              String SERVER = (String)session.getAttribute("ConStr");
              String LOGIN = (String)session.getAttribute("login");
              String PASSWORD = (String)session.getAttribute("password");
              TestFactory TestFactory1 =  new  TestFactory(SERVER,LOGIN,PASSWORD);

            %>

             <sf:JSPTree name="sharedTree"
                    treeFactory = "<%= TestFactory1 %>"
                    startAtDepth="0"
                    imagesPath="<%=imagePath%>"
                    skin="<%=AbstractSkin.FOLDER_SKIN%>"
                    shareTreeStructure="true"
                    templatePath="net/sf/jsptree/example/template/folder/"/>
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33329965
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс создаешь, а метод то не вызываешь.
Метод вызывает наверное класс, который реализует кастом так, поэтому наверника есть либо атрибут в таге, либо флаг в классе TreeFactory, который указывает, нужно ли каждый раз дерево перерисовывать.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33329983
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessenКласс создаешь, а метод то не вызываешь.
Метод вызывает наверное класс, который реализует кастом так, поэтому наверника есть либо атрибут в таге, либо флаг в классе TreeFactory, который указывает, нужно ли каждый раз дерево перерисовывать.
спасибо,да я так и предпологал, щас смотрю кастом таг
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330002
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин, делаю орфографические ошибки, а тут на форуме за это ругают
:)
предпол А гал
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330107
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно в лоб:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<%
  TopicTreeFactory topicTreeFactory =
    (TopicTreeFactory) session.getAttribute("topicTreeFactory");
   if  (topicTreeFactory ==  null ) {
    topicTreeFactory =  new  TopicTreeFactory();
    session.setAttribute("topicTreeFactory", topicTreeFactory);
  }
%>

...
<jtree:JSPTree name="topic"
               treeFactory="<%=topicTreeFactory%>"
 ...                
/>

А когда дерево меняется (у меня оно меняется в базе, через другие классы), то там есть вызов:

Код: plaintext
session.removeAttribute("topicTreeFactory");
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330123
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
  public  TreeStructureModel getTree(String p_name) {
         return  buildTree();

    }

а вот и сохранение в сессию дерева
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 package  net.sf.jsptree.component;

....

 private  Tree getTree()  throws  JspTagException {
        HttpSession httpSession = m_request.getSession();
         if  (httpSession ==  null ) {
             throw   new  JspTagException("Session is NULL. JSPTree cannot work without a session.");
        }
         if  (LOG.isDebugEnabled()) {
            LOG.debug("Getting TreeModel from cache");
        }
        Tree tree = (Tree) httpSession.getAttribute(JSP_TREE_CACHE + "-" + m_name);
         if  (tree ==  null ) {
            tree =  new  StatefulTreeModel(getTreeStructure(), getTreeState());
             if  (LOG.isDebugEnabled()) {
                LOG.debug("Saving tree to cache");
            }
            httpSession.setAttribute(JSP_TREE_CACHE + "-" + m_name, tree);
        }
         return  tree;
    }
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330191
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis PopovМожно в лоб:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<%
  TopicTreeFactory topicTreeFactory =
    (TopicTreeFactory) session.getAttribute("topicTreeFactory");
   if  (topicTreeFactory ==  null ) {
    topicTreeFactory =  new  TopicTreeFactory();
    session.setAttribute("topicTreeFactory", topicTreeFactory);
  }
%>

...
<jtree:JSPTree name="topic"
               treeFactory="<%=topicTreeFactory%>"
 ...                
/>

А когда дерево меняется (у меня оно меняется в базе, через другие классы), то там есть вызов:

Код: plaintext
session.removeAttribute("topicTreeFactory");

так так так...
посмотрим
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330202
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovМожно в лоб:
А когда дерево меняется (у меня оно меняется в базе, через другие классы), то там есть вызов:

Код: plaintext
session.removeAttribute("topicTreeFactory");

Большое HO: этот атрибут надо убрать у ВСЕХ сессий. Я это могу делать, поскольку в приложении хранится список сессий, формируемый через SessionListener. Поэтому м.б. лучше поколдовать с перегрузкой дерева в самом классе.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330876
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрел я на этот атрибут - shareTreeStructure

<sf:JSPTree name="sharedTree"
treeFactory = "<%= TestFactory1 %>"
startAtDepth="0"
imagesPath="<%=imagePath%>"
skin="<%=AbstractSkin.FOLDER_SKIN%>"
shareTreeStructure="true"
templatePath="net/sf/jsptree/example/template/folder/"/>

похоже он отвечает за сохранение структуры дерева в сессии, поставил
shareTreeStructure="false" - нифига не работает, т.е. не перечитывает дерево каждый раз
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330919
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я с этим тагом никогда не работал, но если есть исходники, то в чем проблема? Я не думаю, что там тысячи строк кода надо перелапачивать. Максимум пару сотен.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330952
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее работает так - приходится закрывать экплорер и заходить заново
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330966
Bobrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessenя с этим тагом никогда не работал, но если есть исходники, то в чем проблема? Я не думаю, что там тысячи строк кода надо перелапачивать. Максимум пару сотен.
:)
да прав ты конечно, все упирается во время.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33330973
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BobrikТочнее работает так - приходится закрывать экплорер и заходить заново
значит данные нужно записывать не в сессию, а в реквест.
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33334218
Fighter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения что немного не в тему беседы... Посмотрел я вышеуказанный jsptree и это не совсем то что надо. При каждом открытии/закрытии узла происходит переоткрытие страницы, что не очень то хорошо!!! Есть другие деревья которые при раскрытии узлов не перегружают станицы, а во время загрузки веток выводят текст "Загрузка..." и после динамически меняют представление дерева.
Таких скриптов на самом деле много, примеры можно увидеть:
http://rsdn.ru/
http://www.softcomplex.com/products/tigra_tree_menu_pro/
Но больше всего мне понравился этот:
http://webfx.eae.net/dhtml/xloadtree/demo.html
Он по функционалу максимально приближен к стандартному дереву в Windows. В нём реализованы стандартное управление курсорными клавишами, двойной щелчёк мыши и так далее...
Но все эти скрипты работают с XML :( То есть надо их как то научить работать с базой...
Я попробовал подсунуть вместо ссылки на xml ссылочку на jsp, в которой происходит динамическое формирование xml на основе данных из базы, но такой меотд работает только в IE, а в FireFox и в опере отказывается работать, почему я так и не понял :( Видимо в FireFox и Opera не нравится расширение файла!

Если вас заинтересовало это дерево, то может совместно "научим" работать его с базой? Для этого можно открыть новую ветку в форуме или переписываться по почте (по аське), хотя если никто не возражает то можно и сюда!

Жду ваши предложения и комментарии!
...
Рейтинг: 0 / 0
Сделать TreeView на jsp странице
    #33334585
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, Html jspTree морально устарело по причине перезагрузки страницы.
Но прикручивать microsoft овское дерево тоже не очень хочется.
В рамках изучения технологии AJAX хотелось бы сделать это дерево именно используя последний.Имея собственно дерево на джаваскрипте и серверную часть, которая и занимается подгрузкой нод.
Можно обратить свой взор сюда:
http://wiki.osafoundation.org/bin/view/Projects/AjaxLibraries там что -то говорилость про деревья.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Сделать TreeView на jsp странице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]