Hi there, >From the previous few mails, I know somebody want module-aware & Session ID features. I have done the following, maybe useful to you.
I have added a JSP Custom tag [ DisplayActionMenuTag ]
to take care the Struts Action URI, Context Path
Prefix (if any), Module Prefix (if any), Session ID
(if any), and Servlet Mapping (path mapping or
extension mapping). To achieve this, I also added one
'action' property and it's setter & getter methods in
MenuBase class.
I have attached a zip file in this mail, which
contains the revised files and documentation. Hope it
will be useful to you guys.
Cheers,
Kelvin Yap
[EMAIL PROTECTED]
Here is the documentation... ...
----------------------------
1. com.fgm.web.menu.MenuBase
----------------------------
This revised version contains one additional property
- 'action', as well as it's getter & setter method.
The 'action' property is used in the new
DisplayActionMenuTag.
-------------------------------------------------------
2.
com.fgm.web.menu.displayer.taglib.DisplayActionMenuTag
-------------------------------------------------------
This JSP Custom Tag pays special care to the Struts
Action URI.
The major behavior of this tag is to set the value for
the usage in the HTML hyperlink 'href' attribute. The
value is determined by the following attributes
defined in menu-config.xml, in this prioritize order:
'action', 'page', 'location'.
You can now define an 'action' attribute in the <Item>
element in your menu-config.xml. The 'action'
attribute takes the value of a Logical Struts Action
name for which to look up the context-relative URI.
The resultant URI will carry the Context Path (if
any), Module Prefix (if any), Session ID (if any), and
Servlet Mapping (path mapping or extension mapping).
Here is an example:
<Menu name="indexMenuMore" title="More Examples">
<Item name="actionExample" title="Example -
'action' attribute"
action="/menu/bullet"/>
<Item name="pageExample" title="Example - 'page'
attribute"
page="/bulletmenu.jsp"/>
</Menu>
If you omit 'action' attribute but have defined 'page'
attribute, the resultant URI will carry the Context
Path (if any), Module Prefix (if any) and Session ID
(if any).
If you omit both 'action' and 'page' attibutes but
have defined 'location' attribute, then the resultant
URI will be exactly the same as the 'location' value
you provided.
You have to make sure that you are using the revised
version of com.fgm.web.menu.MenuBase.class file and
struts-menu.tld tag library descriptor file. The
revised MenuBase class have the 'action' property and
the corresponding setter and getter methods added.
Whereas the revised struts-menu.tld file contains a
new 'dislayActionMenu' tag:
<tag>
<name>displayActionMenu</name>
<tagclass>com.fgm.web.menu.displayer.taglib.DisplayActionMenuTag</tagclass>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>target</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
struts-menu-revised-20030821.zip
Description: struts-menu-revised-20030821.zip
