0

尝试执行以下操作时,我在 IE 中遇到“预期错误')'”的脚本错误:

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

我原本只想提前将一个字符串加在一起来发出警报,但我也试过了,但也没有运气。

我的猜测是你不能做这样的事情,但我没有很多其他选择(代码是由其他人开发的,所以我知道有比 Scriptlets 更好的选择)。

无论如何,这些由 JSP 表达式返回的字符串都可以在 constants.java 文件中找到,而这些文件又是从语言包中加载的,以防大家想知道。我已经仔细检查了这些,它们都很好。

当一个值是页面中的 var 并且其他值在 scriptlet 标记中时,如何将这些字符串添加在一起?是否可以?

4

1 回答 1

1

JSP = 服务器端

JavaScript = 客户端

JSP 生成的 JavaScript 代码必须是有效的 JavaScript 代码。使用浏览器的“查看页面源代码”菜单项查看生成的 JavaScript,并修复 JSP 代码,使其生成有效的 JavaScript 代码。

如果您的 JSP 生成了不正确的 HTML 代码,您会怎么做。

你可能错过了一些报价。但还要确保 scriptlet 表达式不返回应该被 JavaScript 转义的字符。或者使用 commons-lang StringEscapeUtils.escapeEcmaScript 来转义这些字符:

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

并且表达式 (...) 应该是您转义的表达式:

StringEscapeUtils.escapeEcmaScript(yourOriginalExpression)
于 2011-10-28T13:50:08.650 回答