cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frédéric Glorieux <frederic.glori...@ajlsm.com>
Subject Re: cocoon (passage de paramètre dans le sitemap )
Date Fri, 07 Apr 2006 13:00:21 GMT

> Bonjour Frédéric et Raphaël,
> 
> Voici un exemple plus concrét :

 > - (NON) Prendre le 2éme argument de l'URL (toto)

La seule chose que je peux dire, c'est que je le fais très souvent, et 
que ça marche.

<map:match pattern="*/*.xml">
   <map:act type="xsp-action" src="context:/exist/xsp/xmldbURL.xsp">
     <map:parameter name="base" value="{1}"/>
     <map:parameter name="resource" value="{2}.xml"/>
     <map:generate src="{collection}{resource}"/>
     <map:serialize type="xml"/>
     <map:serialize type="debug"/>
   </map:act>
</map:match>

Ceci marche très bien chez moi et semble faire le même genre de choses.
En fonction de {1}, l'action xmldbURL.xsp rends une url xmldb du genre
collection = xmldb:instance:///db/collection/
resource   = {2}.xml
et accessoirement échoue si la ressource n'existe pas

L'action n'utilise pas la taglib xsp, elle a essentiellement pour structure

<xsp:page language="java" xmlns:xsp="http://apache.org/xsp">

   <xsp:structure>
     <xsp:include>org.exist.cocoon.XMLDBSource</xsp:include>
   </xsp:structure>

   <action>
     <xsp:logic>
// initialisation des objets de retour de l'action
this.actionRedirector = (org.apache.cocoon.environment.Redirector) 
this.objectModel.get(org.apache.cocoon.acting.ServerPagesAction.REDIRECTOR_OBJECT);
this.actionResultMap = (java.util.Map) 
this.objectModel.get(org.apache.cocoon.acting.ServerPagesAction.ACTION_RESULT_OBJECT);

String base=parameters.getParameter("base", null);
// On rends les paramètres passés
this.actionResultMap.put("base", base);
<!-- Success -->
this.objectModel.put(org.apache.cocoon.acting.ServerPagesAction.ACTION_SUCCESS_OBJECT, 
Boolean.TRUE);


     </xsp:logic>
   </action>
</xsp:page>


> <map:match pattern="*/*/*">
>                 <!-- je traite mon fichier xsp  -->
>                 <map:act type="xsp-action" src="LireMets.xsp">
>                     <!-- je prends le 2éme argument de l'url -->
>                     <map:parameter name="monParam" value="{2}"/>
>                     <!-- je récupére dynamiquement à partir de mon xsp le nom de
>                  mon fichier xml -->
>                     <map:generate src="{nomFichierRecupDyn}"/>
>                     <!-- je récupére dynamiquement le nom de mon xsl -->
>                     <map:transform src="{nomStyleDyn}"/>
>                     <!-- je serialize en html -->
>                     <map:serialize type="html"/>
>                 </map:act>
> </map:match>
> 
> Le but est de faire passer (à partir du pipeline) un paramètre cocoon (en
> l'occurence ici mon 2éme argument de l'url) à ma feuille xsp.
> A partir de cet instant je le récupére avec xsp, je fais mes traitements et je
> renvoie mes résultats à <map:generate> et <map:transform> (qui d'ailleur
marche
> très bien)!
> Donc j'arrive à récupérer des choses dans le sens inverse, c-a-d de xsp au reste
> du pipeline.
> 
> Les étapes:
> - (OK) Requête : http://serveur/collection/toto/tata
> - (OK) Lancer la feuille xsp 
> - (OK) Faire les traitements nécessaire en java
> - (OK) Retourne mes variables (source XML et style XSL)
> - (OK) Génerer les transformations
> 
> Merci d'avance
> 
> 
> ---------------------------------------------------------------------
> 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
> 
> 
> 


-- 
Frédéric Glorieux (AJLSM, http://ajlsm.com)

---------------------------------------------------------------------
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