From: lixin c. <lix...@ya...> - 2005-01-09 08:28:10
|
Hi, would like check if anyone has encountered this before. i basically want to display menu items in a particular order. the menu items are stored in a database. I followed the online example. I deliberatly store the menu items into the database according to the view sequence. The resulted list of items show the corrent sequnce. However, when jsp renders the topMenus, it seems that it order is not what I stored in the database (the sub menu items are all correctly displayed in each top menu). SQL query menu database: ------------------------ "from Menu p order by p.id asc" in my StartupListener: ---------------------- MenuRepository defaultRepository = (MenuRepository) context.getAttribute (MenuRepository.MENU_REPOSITORY_KEY); MenuRepository repository = new MenuRepository(); repository.setDisplayers(defaultRepository.getDisplayers()); MenuManager mgr = (MenuManager) ctx.getBean("menuManager"); List menus = mgr.getMenus(); for (int i=0; i<menus.size();i++) { MenuComponent mc = new MenuComponent(); Menu m = (Menu) menus.get(i); BeanUtils.copyProperties (mc, m); String parent = m.getParentName(); if(parent != null) { MenuComponent parentMenu = repository.getMenu(parent); if (parent == null) { parentMenu = new MenuComponent(); parentMenu.setName(parent); repository.addMenu(parentMenu); } mc.setParent(parentMenu); } repository.addMenu(mc); } context.setAttribute("menuRepository", repository); in my jsp file: ---------------- <menu:useMenuDisplayer name="ListMenu" repository="menuRepository"> <c:forEach var="menu" items="${menuRepository.topMenus}"> <menu-el:displayMenu name="${menu.name}"/> </c:forEach> </menu:useMenuDisplayer> I am not sure how to control the <c:forEach> with menuRepository so that it displays the topMenu in my intended order. thanks li xin __________________________________ Do you Yahoo!? The all-new My Yahoo! - Get yours free! http://my.yahoo.com |