我在JSP文件中的CheckBox下面
<input type="checkbox" name="vehicle" value="Bike"
onclick="javascript:selectCustomers(${sessionScope.custId});">
收到以下错误:
org.apache.jasper.JasperException:customer.jsp(1419,33)根据标记文件中的TLD或属性指令,
属性onclick不接受任何表达式
我们不能在JavaScript中使用表达式语言(在我的情况下是onClick()
事件)吗?
答案 0 :(得分:3)
调用JSP页面时,会按以下顺序发生以下情况:
因此,您的语句:${sessionScope.custId}
在HTML发送给用户之前执行,selectCustomers()
函数的输入在调用之前已经设置为。
有关详细信息,请查看我的另一篇帖子JSP inside ListItems onclick
右键单击浏览器并查看视图源。
尝试以下可能对您有帮助的示例代码。
将${...}
括在单引号内。
<c:set var="custId" value="1234" scope="session" />
Before :
<c:out value="${sessionScope.custId}"></c:out>
<input type="checkbox" name="vehicle" value="Bike"
onclick="javascript:selectCustomers('${sessionScope.custId}');">
<c:set var="custId" value="4321" scope="session" />
After:
<c:out value="${sessionScope.custId}"></c:out>
查看源代码:(在浏览器中右键单击以查看)
Before : 1234
<input type="checkbox" name="vehicle" value="Bike"
onclick="javascript:selectCustomers('1234');">
After: 4321
答案 1 :(得分:0)
试试这个:
<input type="hidden" id="custId" name="custId" value="${sessionScope.custId}">
<input type="checkbox" name="vehicle" value="Bike" onclick="javascript:selectCustomers();">
function selectCustomers(){
var custId = document.getElementById('custId').value;
}