Hi,
I am implementing a struts application with menu lists which need to be
dynamic based on a user role hierarchy, i.e not a simple user role = menu
list. Therefore I cannot set up menu lists in the tile definitions file as
they are
I hold the menu list in a database which I am accessing via an EJB and
returning to the session using a vector of DAO object 's which contain the
basic information about each menu item, i.e name, link,type (we have
different types of links some open a pop-up window, others run an inline
java applet)
Currently I am using standard Java scriptlets to access the vector and
print it out in the JSP tile page example below:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/struts/tiles" prefix="tiles" %>
<%@ taglib uri="/struts/logic" prefix="logic" %>
<%@ taglib uri="/struts/bean" prefix="bean" %>
<%@ taglib uri="/struts/html" prefix="html" %>
<%@ page import="com.csc.ebilling.ejb.common.MenuItemDAO" %>
<%
String commonImagePath= request.getContextPath()
+"/presentation/DEFAULT/images";
String currentPageName = (String)session.getAttribute
("currentPageName");
java.util.Vector topMenu = (java.util.Vector) session.getAttribute
("topMenu");
%>
<table>
<tr>
<%
for (int i=0;i<topMenu.size();i++){
// pageContext.setAttribute("topMenuItem", topMenuItem,
PageContext.PAGE_SCOPE);
MenuItemDAO topMenuItem = (MenuItemDAO) topMenu.get(i);
if (topMenuItem.getMenuItemName().equals(currentPageName))
{
%>
<td valign="bottom" align="right" class="tabselected">
<img src="<%=commonImagePath%>/page_name_left_selected.gif"
border="0">
</td>
<td valign="bottom" background="
<%=commonImagePath%>/page_name_mid_selected.gif" align="center" class
="tabselected" nowrap style="background-repeat: repeat-x;">
<span class="tabselected"><%=topMenuItem.getMenuItemName()%></span>
</td>
<td valign="bottom" align="left" class="tabselected">
<img src="<%=commonImagePath%>/page_name_right_selected.gif" border
="0">
</td>
<%
}
else
{
%>
<td valign="bottom" align="right" class="tabunselected">
<a href="<%=request.getContextPath()%>/changePage.do?pageName
=<%=topMenuItem.getMenuItemName()%>">
<img src="<%=commonImagePath%>/page_name_left_unselected.gif"
border="0">
</a>
</td>
<td valign="bottom" background="
<%=commonImagePath%>/page_name_mid_unselected.gif" align="center" class
="tabunselected" nowrap style="background-repeat: repeat-x;">
<a href="<%=request.getContextPath()%>/changePage.do?pageName
=<%=topMenuItem.getMenuItemName()%>">
<span class="tabunselected"><%=topMenuItem.getMenuItemName
()%></span>
</a>
</td>
<td valign="bottom" align="left" class="tabunselected">
<a href="<%=request.getContextPath()%>/changePage.do?pageName
=<%=topMenuItem.getMenuItemName()%>">
<img src="<%=commonImagePath%>/page_name_right_unselected.gif"
border="0">
</a>
</td>
<%
}
}
%>
</tr>
</table>
I realise that this is not best practice and I should be using the tag-libs
but I'm struggling to make the tag-libs work, I'm also confused about
whether this tile needs to be inside a form as I am not actually submitting
anything (as in a Login page), however I do need to pass a pageName
parameter into the request.
The above example does work (sort of) however I am unable to extract the
pageName parameter in my action class as it keeps returning null
I would really appreciate some pointers as I thought I had struts figured
but I now realise I've gone wrong somewhere along the line
Regards
Joanne Corless
CSC Computer Sciences Limited
(�� Office +44 (0)1772 318025
( Mobile +44 (0)7767 656588
* email [EMAIL PROTECTED]
Based at: CSC, Alliance House, Library Road, Chorley, Lancs, PR6 7EN
CSC Computer Sciences Limited: Registered in England, No. 963578.
Registered office: Royal Pavilion, Wellesley Road, Aldershot, Hampshire,
GU11 1PZ.
----------------------------------------------------------------------------------------
This is a PRIVATE message. If you are not the intended recipient, please
delete without copying and kindly advise us by e-mail of the mistake in
delivery. NOTE: Regardless of content, this e-mail shall not operate to
bind CSC to any order or other contract unless pursuant to explicit written
agreement or government initiative expressly permitting the use of e-mail
for such purpose.
----------------------------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]