Реальное решение работает, если строки уже находятся в файлах Javascript. Но что произойдет, если вы локализовали строки в своей базе данных и хотите передать их в свой код Javascript?Вы можете создать файл XML
с именем YourPageJS.xml
и сохранить там код Javascript, идентифицируемый некоторыми ключами.
<?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>
Этот код вызывается с помощью следующего метода, который находится в служебном классе, передавая ваши параметры:
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;
}
Вызов выглядит следующим образом:
YourUtils.getJsByClass(YourPage.class, "showModal" ,"firstParameter","secondParameter");
, где параметры могут быть вашими локализованными строками. В приведенном выше случае первым параметром является Id разметки. Вы можете добавитьэто к вашей голове HTML, как это:
response.render(JavaScriptHeaderItem.forScript(YourUtils.getJsByClass(YourPage.class, "showModal" ,"firstParameter","secondParameter"), "yourJSid"));
(калитка 6)
Кроме того, в XML
вы должны преобразовать два символа: '
становится ''
и {
становится '{'
для разбора.