Passage de paramètre au composant struts2
-
07-07-2019 - |
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.
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>