EDIT: Nella mia risposta iniziale ho trascurato il requisito di rendere questo file JavaScript disponibile dall'URL pubblico. Mentre cercavo un modo per farlo, mi sono reso conto che il mio intero approccio era imperfetto. Quindi, trasferisco la mia risposta originale fino alla fine e fornisco una risposta più puntuale qui.
Sulla fine di pubblicare una risorsa di testo su un URL pubblico (JavaScript o CSS), è necessario modificare il metodo di init()
in WicketApplication
aggiungendo:
String resourceKey = "DYN_RES_KEY";
//load your text template
final TextTemplate textTemplate = new PackagedTextTemplate(MyPage.class, "script.js", "text/javascript", "UTF-8");
//add the resource
getSharedResources().add(resourceKey, new Resource() {
@Override
public IResourceStream getResourceStream() {
String queryParam = getParameters().getString("paramName");
//...do whatever you need with the parameters...
Map<String,Object> vars = new HashMap<String,Object>();
vars.put("param", queryParam);
String stringValue = textTemplate.asString(vars);
return new StringResourceStream(stringValue, textTemplate.getContentType());
}
});
//mount the resource at some public URL
mountSharedResource("/resource", Application.class.getName() + "/" + resourceKey);
//make alias, optional
getSharedResources().putClassAlias(MyPage.class, "scripts");
NOTA BENE: Questo codice non è scritto in IDE e mai corso. In quanto tale, potrebbe anche non essere compilato. Tuttavia, dovrebbe essere sufficiente per illustrare il modo in cui ciò potrebbe essere realizzato.
Questa risposta è basata su "Dynamically Generate a CSS Stylesheet" e "Wicket Dynamic Image URL", vedere tali fonti per ulteriori dettagli.
RISPOSTA ORIGINALE (utile se si desidera aggiungere JavaScript o CSS che esternamente file con riferimento alla tua pagina Wicket, ma non renderlo pubblicamente visibile):
Partenza "Dynamically Generate a CSS Stylesheet" pagina in Wicket wiki e WICKET-2890 problema in JIRA. Da Wicket 1.4.10, la classe TextTemplateResourceReference fa ora parte del core Wicket, quindi non è più necessario copiarla e incollarla.
La pagina wiki menziona la pagina CSS, ma l'approccio è lo stesso per JavaScript o qualsiasi altro contenuto di testo senza markup.
Ciao, come fai quindi a chiamare quel css/javascript da un altro sito? Le istruzioni mostrano solo come includerlo nelle tue pagine. Grazie, Tom – Tom
ha modificato la mia risposta –
Ciao Neeme - grazie per quello - lo proverò. – Tom