gpt4 book ai didi

java - 在javascript下使用Expression语言?

转载 作者:行者123 更新时间:2023-11-29 18:14:37 25 4
gpt4 key购买 nike

我在 JSP 文件中有下面的 CheckBox

<input type="checkbox" name="vehicle" value="Bike"
onclick="javascript:selectCustomers(${sessionScope.custId});">

出现以下错误:

org.apache.jasper.JasperException: customer.jsp(1419,33) According to TLD or attribute directive in tag file,
        attribute onclick does not accept any expressions

我们可以不在 JavaScript 中使用表达式语言吗(在我的例子中是 onClick() 事件)?

最佳答案

当调用 JSP 页面时,将按以下顺序发生:

  • 服务器检查 .jsp 是否已被编译,以及自上次编译后是否发生了变化。
  • 服务器通过 Jasper 编译器运行 jsp,Jasper 编译器将 jsp 解释为 Java 代码,任何非 Java(CSS、HTML、JavaScript 等)都放在字符串中。
  • Java 代码被编译和执行。
  • 结果放在响应中并发送给用户。

因此,您的声明:${sessionScope.custId} 在 HTML 发送给用户之前执行,并且 selectCustomers() 函数的输入已经在调用它之前设置为。


有关更多信息,请查看我的另一篇文章 JSP inside ListItems onclick

如何验证?

在浏览器中右击并查看 View 源。


尝试以下可能对您有帮助的示例代码。

${...} 括在单引号内。

<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

关于java - 在javascript下使用Expression语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com