$ {}模板文字(ES2015)与JSP EL语法冲突

Mar*_*k C 6 javascript java jsp el ecmascript-6

JSP和JS正在使用$ {},所以正在发生的事情是JS模板文字中的$ {}在被编译成servlet之前被解释和删除.有没有办法告诉Java忽略$ {}而不用isELIgnored完全关闭该功能?

const subject = 'world';
let greet = `hello ${subject}!` 
Run Code Online (Sandbox Code Playgroud)

在浏览器中变为以下内容

const subject = 'world';
let greet = `hello !` 
Run Code Online (Sandbox Code Playgroud)

这是我提出的最好的,但实际上并没有挖掘它的丑陋程度.

<c:out value="var body = `pq_country=${country}&pq_population=${population}`;" escapeXml='false'/>
Run Code Online (Sandbox Code Playgroud)

fen*_*dow 6

您可以在 ${} 前面放置一个反斜杠,以便 JSP 忽略它(通过 David Ford 的这篇文章发现)。

const subject = 'world';
let greet = `hello \${subject}!`
Run Code Online (Sandbox Code Playgroud)


ula*_*mir 4

你必须将JS代码移至外部文件或标签内的函数中script,这将是解决jsp与JS语法冲突的最佳方法。