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