Question

J'essaie de créer un composant struts2 en utilisant freemarker. J'ai créé un fichier ftl avec un code comme celui-ci:

<script type="text/javascript" src="${parameters.library?default('')}"></script>

Qui attend qu'un paramètre nommé bibliothèque soit transmis au composant. Si le paramètre est absent, la valeur par défaut est vide: String .

Sur ma page JSP, je fais référence au composant suivant:

<s:component template="mytemplate.ftl">
    <s:param name="library" value="/scripts/mylibrary.js"/>
</s:component>

Malheureusement, la valeur du paramètre de bibliothèque n'est pas définie. Il s'agit toujours d'une chaîne vierge.

J'utilise les conseils de ce tutoriel et il semble que le < La balise code> s: param doit passer le paramètre dans le modèle et le rendre disponible. Qu'est-ce que j'oublie ici?

Quelqu'un at-il de l'expérience dans la construction de ces composants qui pourraient nous éclairer?

Merci.

Était-ce utile?

La solution

envoyez le paramètre avec des guillemets simples

<s:component template="mytemplate.ftl">
    <s:param name="library" value="'/scripts/mylibrary.js'"/>
</s:component>

Autres conseils

J'ai finalement rencontré une syntaxe dans la documentation qui fonctionne. Je dois me référer au paramètre comme ceci:

<script type="text/javascript" src="${parameters.get('library')?default('')}">
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top