Domanda

Sto tentando di creare un componente struts2 usando il freemarker. Ho creato un file ftl con codice come questo:

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

Che si aspetta un parametro chiamato library da passare al componente. Se il parametro è assente, per impostazione predefinita viene impostato un String vuoto

Sulla mia pagina JSP, mi riferisco al componente in questo modo:

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

Sfortunatamente, il valore per il parametro della libreria non è stato impostato. È sempre una String vuota

Sto usando i consigli di questo tutorial e sembra che il < Il tag code> s: param dovrebbe passare il parametro nel modello e renderlo disponibile. Cosa mi sto perdendo qui?

Qualcuno ha qualche esperienza nella costruzione di questi componenti che potrebbero far luce?

Grazie.

È stato utile?

Soluzione

invia il parametro con virgolette singole

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

Altri suggerimenti

Alla fine mi sono imbattuto in una sintassi nei documenti che funzionano. Devo fare riferimento al parametro in questo modo:

<script type="text/javascript" src="${parameters.get('library')?default('')}">
</script>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top