I'm happy to bring the news of a major upgrade of the Struts Bridge.
A short summary of its new features: - Based on the latest Struts-1.2.4
- Provides new struts-1.2.4-portlet-html.tld and struts-1.2.4-portlet-html-el.tld, as well as a new struts-portlet-el.tld. The first two tld files are full replacements for the struts-html and struts-html-el tlds. By using these tlds instead of the struts-portlet and struts-portlet-el tlds, migrating existing Struts applications becomes much easier (just change the taglib definition). Furthermore, there is now full struts-el support Bridge for all the tags (including the new onces).
- New Portlet supporting extended Struts tags ImgTag and ImageTag and largely extended LinkTag and RewriteTag. These tags now support relative image src paths and href link paths (including ../ elements).
- Provides transparent (non-code based) definition of request attribute values to be saved during ActionRequest handling which will be restored in the subsequent RenderRequest(s).
- Provides transparent (non-code based) definition of url (prefixes) which must be rendered as Action or Render PortletURL. This removes the need to specify the renderURL attribute for link and rewrite tags (its still supported though, and then will override).
- xml based configuration of above two features loaded at Portlet initialization. Default configuration file name: WEB-INF/struts-portlet-config.xml, but this is configurable itself as well. Example configuration (from the new JPetstore demo Portlet): <?xml version="1.0" encoding="UTF-8"?> <config> <render-context> <attribute name="errors"/> <attribute name="message"/> </render-context> <portlet-url-type default="render"> <action path="/shop/add"/> <action path="/shop/switch"/> <action path="/shop/remove"/> <action path="/shop/signoff"/> <action path="/shop/viewCategory"/> <action path="/shop/viewItem"/> <action path="/shop/viewProduct"/> <action path="/shop/viewCart"/> <action path="/shop/newOrder"/> <render path="/shop/newOrderForm"/> <action path="/shop/listOrders"/> </portlet-url-type> </config>
- IMPORTANT: Default PorletURL created by link and rewrite tag changed from ActionURL to RenderURL.
This change is made because in the most cases this turned out to be RenderURLs.
For migrating of existing Struts Bridge based Portlets to the new version there is an very simple configuration option to revert this to the old style:
Define a WEB-INF/struts-portlet-config.xml containing (at least): <?xml version="1.0" encoding="UTF-8"?> <config> <portlet-url-type default="action"/> </config>
That'll switch the default back to the old style. For the old Struts MailReader Demo Portlet also provided with Jetspeed-2, I've put in a configuration file just like that.
- New demo portlet application: JPetstore Portlet. This very know example web application from iBatis (www.ibatis.com) is now also available as Portlet and is automatically deployed in Jetspeed-2 as demo portlet: check it out.
- Deploy as Portlet or as web application! The Struts Bridge can now be used in a non-Portlet context, and then will simply fall back to the basic Struts functionality. This allows the deployment of the same Portlet Application war as web application and as portlet application. You can thus also test the application in a web server only (as long as you don't use Portlet features specifically).
Try out the JPetstore Portlet demo and access it as Portlet from within Jetspeed-2 or directly from the webserver (e.g. http://localhost:8080/jpetstore).
- Abstracted the access to the ServletContextProvider with protected methods in StrutsPortlet allowing Portal Vendor specific extensions to be used (like VAP).
- Still no real documentation ;-) I'm working on it and plan to deliver real usage documentation, as well as a tutorial and instructions for migrating existing Struts applications, within a week.
Regards, Ate Douma
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]