cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Re: flow sendPage/redirectTo
Date Fri, 08 Apr 2005 13:00:50 GMT
Philippe Guillard wrote:

> Merci,
>
> Pour le <pub>,  respect, et j'aimerais bien rencontrer plus de 
> cocooners, mais je suis base en Chine...


Marrant, mon fils ainé a pris l'avion ce matin pour un voyage de 15 
jours en Chine :-)

Il y a un certain "Roy Huang" (lingererhuang@hotmail.com) qui intervient 
sur les mailing-lists et nous a fourni les traductions chinoises pour 
Cocoon Forms.

> Je vais essayer de decrire simplement:
> J'ai un form1 qui contient un lien <a href> pour un autre form2, celui 
> ci termine par une redirection pour recommencer form1. Le form 1 est 
> un select, le form 2 est pour ajouter des elements a ce qui est 
> presente en from1.
>
> <!--sitemap match pattern="select"--->
> function select(selectForm) {
>    // lecture DB
>    cocoon.sendPageAndWait(selectForm);
>    // cette page contient un lien <a href="add">Vous voulez 
> ajouter/changer des elements a cette selection</a>
>    cocoon.sendPage(End);
> }
> <!--sitemap match pattern="add"--->
> function add(addForm) {
>    cocoon.sendPageAndWait(addForm);
>    // POINT1
>    // ecriture DB
>    cocoon.redirectTo("cocoon:/select",true); //Je veux recommencer 
> select depuis le debut, pas le "continuer"
>    // POINT2
> }
>
> Mon flow semble planter le flow debugger et repasser en boucle la 
> portion de POINT1 a POINT2, puis java.lang.StackOverflowError.


Trouvé, c'est un classique! Le problème vient du 
redirectTo("cocoon:/select") : on revient dans la sitemap, et je suppose 
que celle-ci doit avoir un test soit sur la méthode HTTP ou un matcher 
sur l'existence d'un paramètre "continuation-id" qui déclenche l'appel 
de la continuation.

Or la continuation en question, c'est celle qui nous a conduit à sortir 
au POINT1, et donc on refait "écriture DB" et le 
redirectTo("cocoon:/select"). Et on boucle...

La solution est donc de faire un redirectTo("select") qui repasse par le 
navigateur et donc casse le bouclage.

Sylvain

-- 
Sylvain Wallez                        Anyware Technologies
http://apache.org/~sylvain            http://anyware-tech.com
Apache Software Foundation Member     Research & Technology Director


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message