I'm trying to create a dynamic menu using the tiles tutorial, but I get the following error when I display the jsp:
[ServletException in:/topnavbar.jsp] Cannot find bean links in scope page' What am I doing wrong? thanks, sriram My implementation is as follows: 1. I have a topnvabar.jsp which is similar to the tiles example submenu.jsp: <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/tiles.tld" prefix="comp" %> <%@ page import="java.util.Iterator" %> <%-- Push component attributes in page context --%> <comp:importAttribute /> <table> <logic:present name="title"> <tr> <th colspan=2> <div align="left"><strong><bean:write name="title"/></strong></div> </th> </tr> </logic:present> <%-- Check if selected exist. --%> <logic:notPresent name="selected" > <% pageContext.setAttribute( "selected", "" ); %> </logic:notPresent> <%-- Prepare the links list to be iterated --%> <bean:define id="links" name="links" type="java.util.List" scope="page" /> <% Iterator i = links.iterator(); %> <%-- iterate on items list --%> <%-- Normally, we should write something like this : <logic:iterate id="item" name="items" type="java.lang.String" > But, Struts doesn't declare the TEI class for iterate, and some web container deal badly with the declared variable. So, we use what follow instead. --%> <logic:iterate id="iterateItem" name="items" > <bean:define id="item" name="iterateItem" type="java.lang.String" scope="page" /> <tr> <td width="10" valign="top" ></td> <td valign="top" > <%-- check if selected --%> <logic:notEqual name="selected" value="<%=item%>"> <% // Compute link value String link = (String)i.next(); if(link.startsWith("/") ) link = request.getContextPath() + link; %> <font size="-1"><a href="<%=link%>"><%=item%></a></font> </logic:notEqual> <logic:equal name="selected" value="<%=item%>"> <font size="-1" color="fuchsia"><%=item%></font> </logic:equal> </td> </tr> </logic:iterate> </table> 2. I have a tilesDefinitons.xml with the following relevant entries: <tiles-definitions> <definition name="baseDef" path="/TopLevelTemplate.jsp"> <put name="title" value="" /> <put name="topnavbar" value="topnavbar.links" /> <put name="sectionnavbar" value="/sectionnavbar.jsp" /> <put name="leftnavbar" value="/leftnavbar.jsp" /> <put name="content" value="" /> <put name="footer" value="/footer.jsp" /> </definition> <definition name="topnavbar.links" path="/topnavbar.jsp" > <put name="selected" value="Home" /> <putList name="items" > <add value="Home" /> <add value="Campaign" /> <add value="Segment" /> <add value="Analyze" /> <add value="Profile" /> <add value="Admin" /> </putList> <putList name="links" > <add value="home.action" /> <add value="campaignlist.action?name=home" /> <add value="home.action" /> <add value="home.action" /> <add value="home.action" /> <add value="home.action" /> </putList> </definition> <definition name="home" extends="baseDef"> <put name="title" value="Campaign Manager Home" /> <put name="content" value="/HomeContent.jsp" /> </definition> </tiles-definitions> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>