Hi,
I've a problem that drives me really mad...
In our project we developed some portlets which have a workflow similar
to the UserBrowser / UserForm Portlets found in jetspeed 1.4-b3.
Normally the portlets are available only for registered users and
embedded in a tab pane and then a menu pane, where every portlet is seen
alone.

The Browser and the Form velocity portlets have each an entry in the
portlet registry with template and action parameter. In the Browser
there is a "update" link and "delete" link for each item, made by
jslink.getPaneByName("Form") and item-id and type of link ("change",
"delete"), and finally a link for an new item without itemId.

The action class of the FORM consists of a BuildNormalContext, where
necessary database entries are filled in the template (pull down-menus,
previous data of item), and the portlet shows up. The link in the
FORM-tag is made by $jslink.getPaneByName("Form").addPathInfo("action",
FORM-action class). The submit button link uses the event service do
call the appropriate

If the form data contains some errors (illegal characters etc.), the
same form should be shown, with all entered data and an error message
near the field with the error. If all form data is correct, the changes
will be saved or the item will be deleted, and then the user's browser
will be redirected to the browser portlet.

Till now two cases occurred during my tests. The above setup leads to a
correct redirect. But if the user enters the wrong data, the data is
filled in the context, but according to the log file some entries later
the action class is called again with BuildNormalContext, and the
portlet shows up with fields not reflecting the user entries and not
showing the error message.

Another situation I've seen is (I' don't remember the exact setup): If
there's some wrong data, the user gets the portlet with his entries and
the error message. But the redirect to the browser portlet fails with
the log error message "redirect requested, response already committed".
I assured, that nothing was put in the context in this case, and the
HTTPResponse in rundata still has its committed flag to false when the
redirect is set as last step in the action class.

I tried every hint I've found in the jetspeed user list... Maybe I'
didn't understood the sentence by Glenn Golden "You want to do this in
Turbine, not in Jetspeed", but I couldn't see a way beside the changing
the position of action and template parameter from registry to browser
link to action class to form link and back...

I've seen a slightly different logic in the UserBrowser / UserForm in
jetspeed 1.4-b3 (compared with -b1) because the FORM link targets to the
BrowserPortlet, not to itself, and in case of an error occurs a redirect
to itself with the item data stored in the session/temp, but it would be
very much work to adapt our portlets to this logic...

Any comments?

Thanks,
Holger Wessels ([EMAIL PROTECTED])
--
Holger We�els
T-Systems
Systems Integration
T-Systems Nova GmbH
Berkom
Experte F&E
Hausadresse: Goslarer Ufer 35, 10589 Berlin
Telefon: (030) 34 97 - 22 66
Telefax: (030) 34 97 - 22 67
E-Mail: [EMAIL PROTECTED]
Internet: http://www.t-systems.com
Intranet: http://berkom.telekom.de

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to