JSP и добавление строк, возвращаемых сценарием выражения JSP - PullRequest
0 голосов
/ 28 октября 2011

У меня возникают ошибки скрипта «Ожидается ошибка») в IE при попытке сделать следующее:

alert(<%=SystemConfig.getTranslatedTextByKey(LBIBOConstants.LANG_KEY_MODIFYTIME_ALRTMISSINGA, userLocale)%> + strMessageString + <%=SystemConfig.getTranslatedTextByKey(LBIBOConstants.LANG_KEY_MODIFYTIME_ALRTMISSINGB, userLocale)%>);

Первоначально я хотел бы просто предупредить одну строку, добавленную заранее,но я попробовал это и без везения.

Полагаю, вы не можете сделать что-то подобное, но у меня не так много других вариантов (код был разработан кем-то другим, поэтому я понимаю,есть и лучшие альтернативы, чем Scriptlets).

Независимо от того, эти строки, возвращаемые выражениями JSP, находятся в файле constants.java, который, в свою очередь, загружается из языкового пакета, если вам всем интересно.Я дважды проверил их, и они в порядке.

Как я могу добавить эти строки вместе, когда одно значение является переменной на странице, а другие значения находятся внутри тегов скриптлета?Возможно ли это?

1 Ответ

1 голос
/ 28 октября 2011

JSP = на стороне сервера

JavaScript = на стороне клиента

Код JavaScript, который генерирует JSP, должен быть действительным кодом JavaScript.Посмотрите на сгенерированный JavaScript, используя в браузере пункт меню «Просмотр исходного кода», и исправьте код JSP так, чтобы он генерировал действительный код JavaScript.

Точно так же, как если бы ваш JSP генерировал неправильный код HTML.

Возможно, вам не хватает некоторых цитат.Но также убедитесь, что выражение скриптлета не возвращает символы, которые должны быть экранированы JavaScript.Или используйте commons-lang StringEscapeUtils.escapeEcmaScript для экранирования этих символов:

alert('<%= ... %>' + strMessageString + '<%= ... %>');
      ^----------^----------------------^----------^-- quotes!

И выражения (...) должны быть вашими экранированными выражениями:

StringEscapeUtils.escapeEcmaScript(yourOriginalExpression)
...