Hi everyone,

I define PortletA and PortletB in my registry, two VelocityPortlet :

    <portlet-entry name="PortletA" hidden="false" type="abstract"
application="false">

<classname>org.apache.jetspeed.portal.portlets.VelocityPortlet</classname>
        ...
        <parameter name="action" value="portlets.AAction" hidden="false"/>
        <media-type ref="html"/>
    </portlet-entry>
    <portlet-entry name="PortletB" hidden="false" type="abstract"
application="false">

<classname>org.apache.jetspeed.portal.portlets.VelocityPortlet</classname>
        ...
        <parameter name="action" value="portlets.BAction" hidden="false"/>
        <media-type ref="html"/>
    </portlet-entry>

PortletA use ActionA and PortletB use ActionB.

In ActionA I wrote method doAdd.
In ActionB I wrote method doAdd, same name but different method.

If I use this two Portlets on the same screen and call the method doAdd for
one of them, both will be execute, ActionA.doAdd() and ActionB.doAdd().


In fact, the problem come from VelocityPortlet. In getContext method of
VelocityPortlet, the action is load each time.
When you call an action and pass the param eventsubmit_doAdd, all the
VelocityPortlet present on your page, will be execute the methods doAdd of
there VelocityPortletAction's.

I'm sorry, but I dont understand why VelocityPortlet use the Action
mechanisme of turbine? Why not just write an abstract VelocityPortlet with
BuildMaximiseContext(), BuildCustomiseContext() BuildNormalContext() method
to overwrite ?

I hope that help.
Regards

Xa.


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to