2010-09-16 5 views
0

J'essaye de localiser les URL de publication de Lenya. Je stocke la traduction d'URL dans les métadonnées Document et réécrit les URL avec le transformateur URLRewriter.Localisation d'URL dans Lenya

par exemple. Je construis /lenya/default/création/fr/home de /lenya/default/authoring/index.html

Mais je ne peux pas trouver un moyen simple de forcer Lenya à URI Tranlate de requête entrante retour au chemin d'origine: /lenya/default/authoring/index.html

Vraiment je veux traiter la demande via des pipelines en utilisant l'URL d'origine, non traduite.

Est-ce possible? J'avais essayé d'ajouter un filtre de servlet et d'utiliser dispatcher, mais le filtre ne peut pas accéder aux métadonnées des documents car l'objet Environment n'est pas encore dans la pile de traitement ...

(En ce moment je ne vois qu'une seule façon - pour mettre à jour les classes CocoonServlet et Cocoon)

Merci!

Répondre

0

J'ai été capable de le faire via un RequestListener.

Dans la méthode publique onRequestStart (environnement environnement), je crée RequestWrapper avec une nouvelle URL réelle et la place dans objectModel. Aussi je change le contexte d'environnement avec une vraie URL: env.setContext ("", realUrl, env.getContext())

Cela fonctionne très bien!