La soluzione reale funziona se le stringhe sono già in Javascript files.But cosa succede quando si hanno localizzato le stringhe nel database e si desidera passare loro di il tuo codice Javascript? È possibile creare un file XML
denominato YourPageJS.xml
e memorizzare il codice Javascript identificato da alcune chiavi.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="showModal">
<![CDATA[
$(''#{0}'').modal(''show'',{1});
]]>
</entry>
</properties>
Si chiama questo codice attraverso il seguente metodo che si trova in una classe di utilità, passando i parametri:
public static String getJsByClass(Class clazz, String name, Object... params)
{
ResourceBundle resources = ResourceBundle.getBundle(clazz.getName()
+ "JS", Locale.getDefault(),
new XMLResourceBundleControl());
String mesaj = resources.getString(name);
mesaj = MessageFormat.format(mesaj, params);
return mesaj;
}
La chiamata si presenta così:
YourUtils.getJsByClass(YourPage.class, "showModal" ,"firstParameter","secondParameter");
dove i parametri potrebbero essere le stringhe localizzate.Nel caso precedente, il primo parametro è l'Id di markup. Puoi aggiungerlo alla tua testa html in questo modo:
response.render(JavaScriptHeaderItem.forScript(YourUtils.getJsByClass(YourPage.class, "showModal" ,"firstParameter","secondParameter"), "yourJSid"));
(Wicket 6)
Inoltre, nel XML
è necessario trasformare le due personaggi: '
diventa ''
e {
diventa '{'
per motivi di analisi.
fonte
2017-04-12 15:42:40
Mi è venuta una soluzione che utilizza PackageResource, ma la tua è ancora più breve. Molte grazie. – nebenmir