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

时间:2016-08-30 13:46:47

标签: javascript java jsp ecmascript-6 el

JSP和JS正在使用

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

const subject = 'world';
let greet = `hello ${subject}!` 

在浏览器中变为以下内容

const subject = 'world';
let greet = `hello !` 

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

<c:out value="var body = `pq_country=${country}&pq_population=${population}`;" escapeXml='false'/>

2 个答案:

答案 0 :(得分:2)

您必须将JS代码移动到外部文件或script标记内的函数中,这将是用JS语法解决jsp冲突的最佳方法。

答案 1 :(得分:1)

您可以在$ {}前面加上一个反斜杠,以便JSP忽略它(由David Ford通过this article找到)。

const subject = 'world';
let greet = `hello \${subject}!`