Hi!

Wonder if I could get some help with my attempts to write a dynamic menu using the example from http://demo.raibledesigns.com/appfuse/dynamicMenu.jsp.

A call is made from a JSP page to a bean which basically replaces the database in the example mentioned, and includes the calls to the Struts Menu api. I only get the Parent menu item displayed and no child menu item. No matter what I do, nothing turns up.

The JSP page includes the following:

<body>
<h2>Test av Struts Menu.... </h2><br>
<!-- Skapa Dynamisk Meny -->
<%
// Dynamisk meny som skapas utifrån en bean
MenyBean meny = new MenyBean(application);
meny.setMeny("Parent", null, "Dynamisk Förälder", "Dynamisk Förälder Tooltip", null);
meny.setMeny("Child", "Parent", "Dynamiskt Barn", "Dynamiskt Barn Tooltip", "http://www.google.com";);
meny.skapaMeny();
%>
<!-- Visa dynamisk meny -->
<menu:useMenuDisplayer name="ListMenu" repository="repository">
<menu:displayMenu name="Parent"/>
</menu:useMenuDisplayer>
</body>


I attach the JSP page and Bean for generating the menus. Thankful for any help with this :)

BTW...Is there any API documentation around?

Thanks, and happy easter!
/Eje Thorarinsson, Sweden
package se.police.rps.macs.gemensam;

import java.io.Serializable;
import javax.servlet.ServletContext;

import net.sf.navigator.menu.MenuComponent;
import net.sf.navigator.menu.MenuRepository;

/**
 * <p><b>Beskrivning:</b><br>
 * Denna Bean används för att skapa dynamiska menyer
 * 
 * <p><b>Ansvar:</b><br>
 * -  Definiera dynamiska menyer för websidorna i MACS
 * </p>
 *
 * @author     Eje Thorarinsson, Quaint Technology
 * @version    $Revision: 1.0 $<br>$Date: 2004/04/08 13:00:00 $<br>
 */
public class MenyBean implements Serializable {
        
        ServletContext httpContext;
        MenuRepository repository;
        MenuComponent mc;
        
        /**
         * Huvudkonstruktor
         *
         [EMAIL PROTECTED] ctx  -       ServletContext
         */
        public MenyBean(ServletContext ctx) 
        {
                this.httpContext = ctx;
                
                // Instansiera ett menyrepository
                repository = new MenuRepository();              
                MenuRepository defaultRepository = (MenuRepository)
                                                        
httpContext.getAttribute(MenuRepository.MENU_REPOSITORY_KEY);
                repository.setDisplayers(defaultRepository.getDisplayers());
        }

        /* -- PUBLIKA METODER -- */
        
        /**
         * Skapa en meny komponent. 
         * 
         * @param namn          -       Sträng som sätter namn på komponenten
         * @param       titel           -       Den menytitel som visas
         * @param       toolTip -       Ett tips som visar vad som avses med 
menyalternativet
         */     
        public void setMeny(String namn, String parent, String titel, String toolTip, 
String location) 
        {
                // Skapa en ny Meny instans
                MenuComponent mc = new MenuComponent();
                
                // Kolla om menyn har en förälder
                if(parent != null)
                {
                        // Om så är fallet, hämta en referens till föräldern
                        MenuComponent parentMenu = repository.getMenu(parent);
                        
                        // Om ingen referens finns, skapa en
                        if (parentMenu == null) {
                                        System.out.println("Menyn '" + namn + "' finns 
inte!");
                                        parentMenu = new MenuComponent();
                                        parentMenu.setName(parent);
                                        repository.addMenu(parentMenu);
                        }
                        
                        // Registrera menyn som en förälder
                        mc.setParent(parentMenu);       
                }
                
                // Lägg till attribut
                mc.setName(namn);
                mc.setTitle(titel);     
                mc.setToolTip(toolTip); 
                if(location != null)
                        mc.setLocation(location);
                
                // Lagra i Repository   
                repository.addMenu(mc);         
        }

        
        /**
         * Skapa menyn utifrån angivna värden.
         */
        public void skapaMeny() {     
                httpContext.setAttribute("repository", repository);
        }
}
<%@ page language="java"%> <%@ page pageEncoding="ISO-8859-1" %> <%@ page contentType="text/html; charset=ISO-8859-1" %> <%@ taglib uri="http://struts-menu.sf.net/tag" prefix="menu" %> <%@ taglib uri="http://struts-menu.sf.net/tag-el" prefix="menu-el" %> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> <%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template" %> <%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %>
Title: Testsida för Struts Menu
<%@ include file="page-defaults.jsp"%> <[EMAIL PROTECTED] import="se.police.rps.macs.gemensam.MenyBean"%>

Test av Struts Menu....


<% /* MenuRepository repository = new MenuRepository(); MenuRepository defaultRepository = (MenuRepository) application.getAttribute(MenuRepository.MENU_REPOSITORY_KEY); repository.setDisplayers(defaultRepository.getDisplayers()); MenuComponent mc1 = new MenuComponent(); mc1.setName("Parent"); mc1.setToolTip("Dynamisk meny parent 1"); mc1.setTitle("Parent 1"); MenuComponent mc2 = new MenuComponent(); mc2.setParent(mc1); mc2.setToolTip("Dynamisk meny child 1"); mc2.setTitle("Child 1"); mc2.setLocation("http://www.aftonbladet.se"); repository.addMenu(mc1); pageContext.setAttribute("repository", repository); */ // Dynamisk meny som skapas utifrån en bean MenyBean meny = new MenyBean(application); meny.setMeny("Parent", null, "Dynamisk Förälder", "Dynamisk Förälder Tooltip", null); meny.setMeny("Child", "Parent", "Dynamiskt Barn", "Dynamiskt Barn Tooltip", "http://www.google.com"); meny.skapaMeny(); %>

Reply via email to