If you're using the same name as the default - you don't need to specify the "repository" attribute. That's only needed if you give the repository a different name.

Matt

On Jun 25, 2004, at 8:50 AM, Thomas Bednarz wrote:

 Matt Raible wrote:

Yes, it looks in all contexts - so if you put it in any of them it� should work.� The one from reading menu-config.xml gets put in� application, allowing you to customize at the different levels/scopes.

 Matt


Matt,

 Thanks for your help. But it seems not really to work for me! :-(
 Hmmm, I did the following in my Struts-Action:

������� session.getServletContext().setAttribute(MenuRepository.MENU_REPOSITORY _KEY, repository);
and I also tried
������� session.setAttribute(MenuRepository.MENU_REPOSITORY_KEY, repository);


In the JSP I removed:
<%
���� pageContext.setAttribute("repository",� (MenuRepository)application.getAttribute(MenuRepository.MENU_REPOSITORY _KEY));
���� %>


 so there remains simply:

��� <menu:useMenuDisplayer name="CoolMenu4" repository="repository">
 ��� ��� <menu:displayMenu name="WNT"/>
 ��� ��� <menu:displayMenu name="AD"/>
 ��� ��� <menu:displayMenu name="Tools"/>
 ��� ��� <menu:displayMenu name="Info"/>
 ��� ��� <menu:displayMenu name="Home"/>
 ��� </menu:useMenuDisplayer>���

 The result is an exception:

2004-06-25 16:44:34 ApplicationDispatcher[/Echnaton] Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: The menu repository could not be found.
��� at net.sf.navigator.taglib.UseMenuDisplayerTag.doStartTag(UseMenuDisplayer Tag.java:148)
��� at org.apache.jsp.Templates.EWCHeader_jsp._jspx_meth_menu_useMenuDisplayer _0(EWCHeader_jsp.java:181)
��� at org.apache.jsp.Templates.EWCHeader_jsp._jspService(EWCHeader_jsp.java: 132)
��� at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
��� at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
��� ......


 Any idea what I am missing?

 Tom


On Jun 25, 2004, at 8:05 AM, Thomas Bednarz wrote:


�Matt Raible wrote:

I'd put it into the request.

request.setAttribute("repository", repository);

Note that you'll have to do this every time you want to view the page� since the repository will disappear once the page is done loading.�� You could also put it into the user's session and then it would stay� there for duration of their session - however long you have that set� to.

Matt


 �Matt,

 �I found a different, maybe less elegant solution to that:

 �In the Struts-Action I put the stuf f in the application context:

��������� session.getServletContext().setAttribute(MenuRepository.MENU_REPOSITORY _KEY, repository);

 �In the Jsp I take it from the application context:

���� <%
���� pageContext.setAttribute("repository",� (MenuRepository)application.getAttribute(MenuRepository.MENU_REPOSITORY _KEY));
���� %>
�At least this works fine but may not be efficient.


�What I do not understand: (Just for a better understanding how it� works behind the scenes)

 ���� <menu:useMenuDisplayer name="CoolMenu4" repository="repository">
 ��� .........
 ���� </menu:useMenuDisplayer>���

�Where does it look for the "repository" object? Does it lookup in all� contexts (Page, Request, Session, Application)?

 �Cheers

 �Tom

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of� Thomas Bednarz
Sent: Friday, June 25, 2004 2:22 AM
To: Struts menu user list
Subject: [struts-menu] Newbee - How to create a dynamic menu in a� Struts Action?



�Hi,

�I usually work with Velocity and not with JSP. However I decided to� build my menu with JSP and mix Velocity and JSP. The problem is, that� I have no experience with JSP.

�To create a dynamic menu I looked at the database sample. I have the� following question:

How can I put my menu repository from a Struts Action into a JSP Page� Context ?????

 �I have a Struts Action that builds the menu as follows:

���� public ActionForward perform(ActionMapping mapping, ActionForm� form,
���� ��� ��� ��� ���������������� HttpServletRequest request,� HttpServletResponse response)
���� throws IOException, ServletException
���� {
�������� ActionForward af = super.perform(mapping, form, request,� response);
�������� if (af != null)
������������ return af;
�������� ........
�������� buildMenu(session);
�������� .....
�������� return (new ActionForward("/Templates/Test.jsp"));
���� }
����
���� protected void buildMenu(HttpSession session)
���� {
���� ��� MenuRepository repository = new MenuRepository();
���� ��� MenuRepository defaultRepository = (MenuRepository)
���� ���� session.getServletContext().getAttribute(MenuRepository.MENU_REPOSITORY _KEY);
���� ��� repository.setDisplayers(defaultRepository.getDisplayers());
���� ���
�������� MenuComponent mc = new MenuComponent();
�������� mc.setName("Test Menu 1");
�������� String title = "Menu Title";
�������� mc.setTitle(title);
�������� //mc.setLocation("location");
�������� repository.addMenu(mc);
��������
���� �� // WHERE TO PUT THE REPOSITORY OBJECT (IN WHICH CONTEXT??)
������� // I should do something like� JSPPageContext.setAttribute("reporsitory", repository);
��� }


 �In the Test.jsp I would like do do something like:

 ���� <menu:useMenuDisplayer name="ListMenu" repository="repository">
 ���� ��� <menu:displayMenu name="Test_Menu_1"/>
 ���� </menu:useMenuDisplayer>���

 �Many thanks for your help!

 �Tom.






-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
struts-menu-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/struts-menu-user






-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
struts-menu-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/struts-menu-user

Reply via email to