gpt4 book ai didi

java - 为什么在 JSTL el 表达式中转义引号时出现 JSP 错误 "attribute for "未正确终止?

转载 作者:行者123 更新时间:2023-11-28 22:24:56 25 4
gpt4 key购买 nike

我已经在 Mac 上开发了 8 年多,我想再给 Windows 10 一次机会。所以我在 Mac 上将我所有的项目 checkin 到 GitHub 中,然后在我的 Windows 10 机器上同步项目。

在 NetBeans 中运行项目并导航到某些 JSP 页面后,我收到以下错误...

18-May-2018 09:46:24.335 SEVERE [http-nio-8084-exec-27] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with path [/Project] threw exception [/WEB-INF/tags/config.tag (line: 46, column: 34) attribute for " is not properly terminated] with root cause org.apache.jasper.JasperException: /WEB-INF/tags/config.tag (line: 46, column: 34) attribute for " is not properly terminated

在指定的行上我有以下......

<c:when test="${storageType == \"boolean\"}">

虽然我可以将其更改为以下...

<c:when test="${storageType == 'boolean'}">

我的标签和 JSP 中有很多地方转义了引号 ("),我不明白为什么我必须更改它。我的项目按原样在生产中工作,所以我不这样做想要不必要地接触 JSP/标记文件。

在我使用 JDK 1.8.0_102 的 Mac 上,它工作正常

在我使用 JDK 1.8.0_172 的 Windows 10 上它不工作

我正在使用带有上述 JDK 的 NetBeans。

Windows 上的 Tomcat = 8.0.27.0

Mac 上的 Tomcat = 8.0.23.0

更新

这有效..

<c:if test="${key == 'testing'}">
<div>TESTING-A</div>
</c:if>

这行不通...

<c:if test="${key == \"testing\"}">
<div>TESTING-A</div>
</c:if>

后者导致运行时

错误

[/WEB-INF/tags/config.tag (line: 27, column: 12) attribute for "is not properly terminated] with root cause org.apache.jasper.JasperException:/WEB-INF/tags/config "的 .tag(行:27,列:12)属性未正确终止。

我注意到第 12 列是第一个引用......

明确地说,在 JSTL 表达式中转义似乎是根本原因 - 但为什么它在更新的 Tomcat 上不起作用?

最佳答案

如果您的 storageType 变量确实是一个 boolean 值,您可以像这样检查它:

<c:if test="${storageType eq false}">

但是,如果它只是一个值为“false”的字符串,您应该进行字符串比较:

<c:if test="${storageType eq 'false'}">

考虑到您的特定示例,您可以这样做:

<c:when test="${storageType eq true || storageType eq false}">

或用于字符串比较

<c:when test="${storageType eq 'true' || storageType eq 'false'}">

但您真的应该首先执行第一次检查,看看您的变量是否真的是 boolean 类型而不仅仅是字符串。

关于java - 为什么在 JSTL el 表达式中转义引号时出现 JSP 错误 "attribute for "未正确终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50408718/

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