Fórumok

forward verso un'altra action da una action

Pietro Santoro, módosítva 15 év-val korábban

forward verso un'altra action da una action

New Member Bejegyzések: 16 Csatlakozás dátuma: 2008.05.04. Legújabb bejegyzések
Ciao a tutti,
sembra un problema comune ma non sono riuscito a trovare soluzione.
Ho una portletaction e devo da questa richiamare un'altra action all'interno del codice stesso.

Come fare?

Ho provato a ritornare un actionforward costruito con tutti i path possibili ma mi ritorna sempre "resource not exist".
C'e' un metodo standard per fare questo?

Grazie
Pietro
Roberto r Serpe, módosítva 15 év-val korábban

RE: forward verso un'altra action da una action

New Member Bejegyzések: 2 Csatlakozás dátuma: 2008.06.18. Legújabb bejegyzések
Buonasera, per richiamare una action da un'altra action devi agire sullo struts config. Ovvero, quando la prima action ha un return "success", nel file xml devi mappare l'evento in questo modo: <forward name="success" path="/SecondaAction.do"/>...Spero di essere stato utile.
Pietro Santoro, módosítva 15 év-val korábban

RE: forward verso un'altra action da una action

New Member Bejegyzések: 16 Csatlakozás dátuma: 2008.05.04. Legújabb bejegyzések
Roberto r Serpe:
Buonasera, per richiamare una action da un'altra action devi agire sullo struts config. Ovvero, quando la prima action ha un return "success", nel file xml devi mappare l'evento in questo modo: <forward name="success" path="/SecondaAction.do"/>...Spero di essere stato utile.

Si, anch'io in un'applicazione struts "normale" procedo cosi'. Per in liferay le cose si "complicano". Di seguito la configurazione della mia portlet in modo da essere piu' chiaro:

In liferay-portlet-ext.xml
<portlet>
<portlet-name>myportlet</portlet-name>
<struts-path>myportlet</struts-path>
<use-default-template>true</use-default-template>
<restore-current-view>true</restore-current-view>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-attributes>
</portlet>

In portlet-ext.xml
<portlet>
<portlet-name>myportlet</portlet-name>
<display-name>My Portlet</display-name>
<portlet-class>it.test.MyPortlet</portlet-class>
<init-param>
<name>view-action</name>
<value>/myportlet/start</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
</portlet>

In struts-config-ext.xml
<action path="/myportlet/start" type="it.test.StartAction">
<forward name="next_action" path="/myportlet/step1"/>
</action>

<action path="/myportlet/step1" type="it.test.Step1Action" />


All'interno dell'action StartAction

public class StartAction extends PortletAction {
public ActionForward render(ActionMapping mapping, ActionForm form,
PortletConfig config, RenderRequest req, RenderResponse res)
throws Exception {
return mapping.findForward("next_action");
}
}

Alla fine, dopo l'esecuzione del StartAction.render ottengo un errore:
The requested resource (/html/myportlet/step1) is not available

Praticamente non fa piu' riferimento alla portlet ma direttamente alla posizione della jsp dalla quale parte la richiesta (che e' sotto /html/myportlet/). Dove sbaglio?

Grazie
Pietro
thumbnail
Marco Guastalli, módosítva 15 év-val korábban

RE: forward verso un'altra action da una action

Junior Member Bejegyzések: 31 Csatlakozás dátuma: 2008.08.11. Legújabb bejegyzések
Hai risolto?
Io ho lo stesso problema e non trovo la soluzione emoticon
thumbnail
Marco Guastalli, módosítva 15 év-val korábban

RE: forward verso un'altra action da una action

Junior Member Bejegyzések: 31 Csatlakozás dátuma: 2008.08.11. Legújabb bejegyzések
ci sono riuscito, devi passare attraverso tiles
Pietro Santoro, módosítva 15 év-val korábban

RE: forward verso un'altra action da una action

New Member Bejegyzések: 16 Csatlakozás dátuma: 2008.05.04. Legújabb bejegyzések
Cosa intendi dire "attraverso tiles"?

Io sono riuscito a saltare da un'action all'altra solo attraverso la processAction (e non la render) cioe' solo durante la action phase e non la render phase (provando un'infinita' di path dentro struts-config e tiles). Credo che questo sia dovuto al fatto che nella fase di render ormai il server stia spedendo al client l'output e quindi non puo' fare piu' un redirect lato server. Un'altra soluzione per saltare dalla render alla action successiva e' richiamare una jsp all'interno della quale si fa un redirect lato client (in javascript) con la url della action da chiamare (ho visto anche esempi del genere in altre jsp di liferay stesso).

Pietro
thumbnail
Marco Guastalli, módosítva 15 év-val korábban

RE: forward verso un'altra action da una action

Junior Member Bejegyzések: 31 Csatlakozás dátuma: 2008.08.11. Legújabb bejegyzések
Con "attraverso tiles" intendevo proprio che l'ho fatto nella jsp con javascript.
Ho provato anche con un META HTTP-EQUIV="refresh" ma non funziona.
Comunque la soluzione non mi convince, preferisco farlo nel processAction