0

次の操作を実行しようとすると、IE で「Error expected ')'」というスクリプト エラーが発生します。

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

もともとは、事前に1つの文字列を追加してアラートを出したいだけでしたが、それも試してみましたが、うまくいきませんでした。

私の推測では、このようなことはできないと思いますが、他に多くのオプションはありません (コードは他の人によって開発されたものなので、スクリプトレットよりも優れた代替手段があることは理解しています)。

とにかく、JSP 式によって返されるこれらの文字列は、constants.java ファイルにあり、言語パッケージから順にロードされます。私はこれらを再確認しましたが、問題ありません。

1 つの値がページ内の var であり、他の値が scriptlet タグ内にある場合、これらの文字列を一緒に追加するにはどうすればよいですか? 出来ますか?

4

1 に答える 1

1

JSP = サーバーサイド

JavaScript = クライアント側

JSP が生成する JavaScript コードは、有効な JavaScript コードでなければなりません。ブラウザの [ページ ソースの表示] メニュー項目を使用して生成された JavaScript を確認し、有効な JavaScript コードが生成されるように JSP コードを修正します。

JSP が間違った HTML コードを生成した場合の正確な方法。

おそらくいくつかの引用符が欠けています。ただし、スクリプトレット式が、JavaScript でエスケープする必要がある文字を返さないようにしてください。または commons-lang StringEscapeUtils.escapeEcmaScript を使用してこれらの文字をエスケープします:

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

そして、式 (...) はエスケープされた式でなければなりません:

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