2010-05-18 4 views
0

Je dois pouvoir ajouter du javascript à toutes les réponses de postback ajax (PartialViewContext.isAjaxRequest == true) mais je ne réussis pas avec une implémentation que j'essaie.JSF 2 Fonctionnalité de style Scriptmanager

J'ai essayé la mise en œuvre d'un

PhaseListener 

et en ajoutant mon script en utilisant PartialResponseWriter.insert * pour ajouter des blocs eval, ainsi que d'essayer d'ajouter le script en créant un élément de script. (Résultats dans CDATA ne peut pas imbriquer, ou tout simplement XML non valide)

J'ai essayé la décoration PartialViewContextFactory pour remplacer le

PartialViewContext.processPartial 

et ajoutez le script une fois l'instance enveloppé l'a traité ...

Comment devrais-je ajouter des sripts à une réponse Ajax? Quelque chose de similaire à ce que .NET a avec Scriptmanager.registerClientScriptBlock de préférence.

Merci

Répondre

0

Les bibliothèques javascript qui sont livrés avec votre mise en œuvre de JSF2 (tel que requis par la spécification). Voici les API docs:

http://java.sun.com/javaee/javaserverfaces/2.0/docs/js-api/index.html

Le jsf.ajax.addOnEvent résout votre problème de "ajouter un peu de javascript pour toutes les réponses ajax postback":

Cette fonction doit accepter une référence à une fonction JavaScript existante. La référence de fonction JavaScript doit être ajoutée à une liste de rappels, ce qui permet d'enregistrer plusieurs rappels en invoquant jsf.ajax.addOnEvent plus d'une fois.

+0

Merci pour la réponse, mais cette suggestion ne fonctionne que si toutes les publications sur le serveur passent par le code de la bibliothèque client JSF et que vous avez accès au code client. Je suis à la recherche d'une solution côté serveur, avec une approche similaire à ce qui est disponible sur la plateforme .NET avec ScriptManager. – CDSO1

Questions connexes