在javascript下使用表达式语言
Using Expression language under javascript?
我在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()
事件)?
当调用JSP页面时,按此顺序发生以下操作:
- 服务器检查.jsp是否已经编译,以及自上次编译以来是否发生了更改。
- 服务器通过Jasper编译器运行jsp,该编译器将jsp解释为Java代码,任何非Java的内容(CSS、HTML、JavaScript等)都放在String中。
- Java代码被编译并执行
- 将结果放在响应中并发送给用户。
所以,你的语句:${sessionScope.custId}
在HTML发送给用户之前执行,selectCustomers()
函数的输入在调用它之前已经设置为。
有关更多信息,请查看我的另一篇文章JSP inside listtitems 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
试试这个:
<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;
}
相关文章:
- 如何通过JavaScript正则表达式匹配不同语言中的单词
- 我的正则表达式如何支持多种语言,如中文,日语,法语等
- jstl-如何将表达式语言变量传递给javascript警报
- 在 JavaScript 中包含 JSF 表达式语言
- 正则表达式不允许所有特殊字符,但允许其他语言,如希伯来语 JavaScript
- 高图表和表达式语言问题 - 标记“{”上出现语法错误
- 访问 jsp 页面的 javascript 中的表达式语言
- 可以角度.js与JSTL表达式语言进行通信
- 为什么我们要在 JavaScript 等语言中将 / 和 / 放在正则表达式的开头和结尾
- 表达式语言 - 如何访问整个数组
- JavaScript 语言解析:区分函数表达式和声明
- 需要忽略值中是否有任何单引号字符来自表达式语言,而不会破坏 JavaScript 代码
- JQuery/Javascript - 需要正则表达式来匹配多语言文本
- 将JSF表达式语言作为参数传递给javascript函数
- 如何在不同的编程语言中使用相同的正则表达式
- 在javascript下使用表达式语言
- 在哪里可以找到多语言正则表达式的单元测试?
- 试着恢复状态.表达式语言操作符
- 表达式语言中的新行
- 跨语言简单表达式语言实现