i ont un problème avec la charge ordre de javascript-ressources dans mon projet JSF. dans mon maître-modèle je charge tous les scripts au bas de la page:JSF 2.2: sortie « jsf.js » et « omnifaces.js » manuellement au corps au lieu de la tête
<h:body>
...
<ui:insert name="scripts">
<h:outputScript name="js/jquery.js" />
<h:outputScript name="js/chart.js" />
<h:outputScript name="js/all.js" />
</ui:insert>
</h:body>
sur certaines pages i utiliser les omnifaces CommandScript-tag avec une fonction javascript définie dans all.js:
<o:commandScript name="ALL.selectTypes" action="#{bean.typeSelected}">
je reçois
ReferenceError: ALL is not defined
la raison est que le temps et jsf.js omnifaces.js sont chargés, all.js est pas encore chargé, car les deux scripts apparaissent dans la tête du document alors que mon propre les scripts apparaissent à t il bas. quand je mets mes scripts dans
<h:head>
place au bas de page, il fonctionne comme prévu. puis-je contrôler manuellement l'apparition de ces scripts pour qu'ils apparaissent comme:
<h:body>
...
<ui:insert name="scripts">
<h:outputScript library="javax.faces" name="jsf.js" />
<h:outputScript library="omnifaces" name="omnifaces.js" />
<h:outputScript name="js/jquery.js" />
<h:outputScript name="js/chart.js" />
<h:outputScript name="js/all.js" />
</ui:insert>
</h:body>
l'essai ci-dessus n'a pas d'effet. jsf.js et omnifaces.js sont placés dans la tête quand même. J'ai aussi essayé avec le remplacement
<h:outputScript>
avec
<o:deferredScript>
mais ne peut pas fait. Y a-t-il des alternatives? merci d'avance pour des conseils.
ah, qui résout. i maintenant introduit un espace de noms global dans la tête du maître-modèle que je vais utiliser pour toutes les fonctions noms CommandScript: 'code' – Steve