我正在使用Google Calendar 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 .
否则它将正常工作。仅当描述有新行时才给出错误。
尝试将自己想象成JSP容器,然后想象成JavaScript解释器。或者只是查看生成的HTML页面的源代码。
行
var EventDescription='<% =eventDetails.getEventDescription(eventIndex)%>'
由JSP容器解释。因此,将执行eventDetails.getEventDescription(eventIndex)
,并将此方法调用的结果放入响应中。假设结果由两行组成:
line 1
line 2
因此,生成的JavaScript代码为:
var EventDescription='line1
line 2'
这是无效的JavaScript代码。正确的JavaScript代码将是
var EventDescription='line1\nline 2'
因此,在将Java方法调用的结果放入响应之前,您需要对其进行JavaScript转义。查看Apache commons-lang StringEscapeUtils.escapeEcmaScript()方法。