在jsp中使用ES6反引号(`)来代替普通字符串中的用双引号和单引号,使用${expression}占位符与EL表达式有冲突的解决方法

在ES6中使用反引号 (`)拼接字符串很方便

let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`

function addA(val, row, index) {
	//return '' + val + '';
	return `${index})">${val}`;
}

可是在页面中同样使用EL表达式的时候就会出现${expression}占位符冲突的问题,浏览器执行取不到方法中的参数:浏览器运行程序

方法1

在内部再嵌套一层${}表达式并且用双引号引起:浏览器运行程序

方法2

将方法拿到一个单独的js文件中

function addA(val, row, index) {
	//return '' + val + '';
	return `${index})">${val}`;
}
<script src="MyOwnTest.js"></script>

这样就就不会互相影响了!

方法3

如果整个页面不使用EL表达式可以在页面顶部加上

<%@ page isELIgnored="true" %>

这样页面就禁用了EL表达式。

在拼接字符串过程中传递参数最好加上单引号,这样多个参数就可以识别

function clickFlagStyle(value, row, index) {
	if (row.org_code.indexOf("AA")>=0) {
	    return `${row.org_id}', '${row.org_code}')">${value}`
	} else {
	    return `${row.org_id}')">${value}`
	}
}

你可能感兴趣的:(思考问题)