0

私はGoogleカレンダーAPIに取り組んでいます。イベントを作成し、そのイベントの説明を改行で入力すると、次のようなエラーが表示されます。

「未終了文字列定数」。

そのイベントの説明を Java から Javascript に渡しています。では、改行を含む文字列をフォーマットする方法は?

私のコードは次のとおりです。

 var EventDescription='<% =eventDetails.getEventDescription(eventIndex)%>'

    eventDetails -java class 
    getEventDEscription -Method to get the Description of event.
    eventIndex - no of the event whoes Description is needed .

それ以外の場合は正常に動作しています。説明に改行がある場合にのみエラーが発生します。

4

1 に答える 1

5

自分が JSP コンテナーであり、次に JavaScript インタープリターであると想像してみてください。または、生成された HTML ページのソース コードを見てください。

この線

var EventDescription='<% =eventDetails.getEventDescription(eventIndex)%>'

JSP コンテナによって解釈されます。SoeventDetails.getEventDescription(eventIndex)が実行され、このメソッド呼び出しの結果が応答に入れられます。結果が 2 行で構成されているとします。

line 1
line 2

したがって、生成された JavaScript コードは次のようになります。

var EventDescription='line1
line 2'

これは無効な JavaScript コードです。正しい JavaScript コードは次のようになります。

var EventDescription='line1\nline 2'

そのため、Java メソッド呼び出しの結果を応答に入れる前に、その結​​果を JavaScript でエスケープする必要があります。Apache commons-lang StringEscapeUtils.escapeEcmaScript()メソッドを見てください。

于 2012-05-09T10:04:03.927 に答える