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

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

Reply via email to