La solución real funciona si las cadenas ya están en el Javascript files.But lo que sucede cuando se han localizado las cadenas en su base de datos y quiere pasarlos a tu código Javascript? Puede crear un archivo XML
llamado YourPageJS.xml
y almacenar el código JavaScript allí identificado por algunas teclas.
<?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>
Se llama a este código a través del siguiente método que se encuentra en una clase de utilidad, pasando sus parámetros:
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 llamada se ve así:
YourUtils.getJsByClass(YourPage.class, "showModal" ,"firstParameter","secondParameter");
donde los parámetros podrían ser sus cadenas localizadas. En el caso anterior, el primer parámetro es el Id de marca. Puede agregarlo a su encabezado html de la siguiente manera:
response.render(JavaScriptHeaderItem.forScript(YourUtils.getJsByClass(YourPage.class, "showModal" ,"firstParameter","secondParameter"), "yourJSid"));
(peatonal incorporada 6)
Además, en el XML
debe transformar dos personajes: '
convierte ''
y {
se convierte en '{'
por razones de análisis.
Se me ocurrió una solución que usaba PackageResource, pero la suya es aún más corta. Muchas gracias. – nebenmir