Domanda

I `m in via di sviluppo di un'applicazione mediante Primavera WebFlow 2, Facelets e JSF. Uno dei miei flussi ha una pagina che deve innescare una forma presentare a determinati eventi. Per ogni azione diversa, una diversa visione deve essere presentata. Quindi, sto cercando di attivare il seguente codice javascript per eseguire la presentazione:

function myFormSubmit( eventId ) {
   var formAction = document.myForm.action;
   document.myForm.action = formAction + '&_eventId=' + eventId;
   document.myForm.submit();
}

Purtroppo, questo non fa scattare il passaggio richiesto nel mio flusso. La pagina non cambia. C'è qualcuno che sa come trattare con questo?

Grazie, Alexandre

È stato utile?

Soluzione 3

Ho la soluzione nel forum primavera WebFlow. Secondo Jeremy Grelle, la presentazione di parametro "_eventId" non attiva le transizioni durante l'integrazione di primavera WebFlow a JSF. La soluzione ha dato è stato quello di creare un PhaseListener JSF che crea un'azione JSF quando un parametro "_eventId" viene inviato.

Il codice PhaseListener può essere visto a http: //forum.springsource. org / showthread.php? p = 219.358 # post219358 .

Altri suggerimenti

Non so nulla di SringFaceletsSF, ma penso che gestore di eventi dovrebbe probabilmente tornare true. In caso contrario, il tuo browser non inviare il modulo.

così:

function myFormSubmit( eventId ) {
   var formAction = document.myForm.action;
   document.myForm.action = formAction + '&_eventId=' + eventId;
   document.myForm.submit();
   return true;
}

A ben vedere, ci sono un sacco di problemi con questo codice.

document.myForm.action è un modo non-standard di ottenere elementi. Il modo migliore, cross-browser è:

document.getElementById('myFormId');

Alla cieca aggiungendo una e commerciale all'URL form action presuppone che vi sia già un altro parametro url, e quindi v'è già un punto interrogativo dopo l'URL. Se questo non è il caso la seguente interruzioni di riga:

document.myForm.action = formAction + '&_eventId=' + eventId;

Infine, se che si sta chiamando questa funzione come un gestore onSubmit, credo che si dovrebbe solo tornare vero, e non chiamare il metodo myForm.submit()

Modifica form.action è un modo molto povera di aggiungere informazioni a un invio di un modulo. Suggerisco di mettere un input nascosto nel modulo che è possibile popolare con il vostro eventID.

Sei alla ricerca di questo parametro nei tuoi params GET o POST tuoi params? non sarà visualizzato nel post.

Aggiornamento:

ok, quindi per illustrare, provare questo ...

modificare la funzione per fare questo:

function myFormSubmit( eventId ) {
   var formAction = document.myForm.action;
   //document.myForm.action = formAction + '&_eventId=' + eventId;
     var myAction = document.createElement('input');
     myAction.setAttribute('name', '_eventId');
     myAction.setAttribute('type', 'hidden');
     myAction.setAttribute('value', eventId);
     document.myForm.appendChild(myAction);
   document.myForm.submit();
}

Prova a qualsiasi (non-IE) * browser e vedere se funziona. Se è così, il GET vs POST param è il problema.

* non-IE: trying to set the name or type in IE will FAIL, thus don't test there.

C'è qualche motivo non è possibile utilizzare la primavera Faces componenti che vengono con SWF? C'è un tag ajaxEvent è possibile utilizzare per avvolgere elementi. Si attiva su determinati eventi JavaScript (onclick, OnChange) e invoca un'azione di vostra scelta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top