gpt4 book ai didi

jsp - 表达式语言中不允许 Javabean 函数为空?

转载 作者:行者123 更新时间:2023-11-28 23:46:48 24 4
gpt4 key购买 nike

在添加实际数据之前,我现在正在尝试编写一个简单的页面来进行测试。

我有一个接口(interface)指定了一个返回 bool 值的方法 isEmpty(),在 JSP 中有以下代码:

<c:if test="${not empty output}">
<h2>${output.title}</h2>
<c:choose>
<c:when test="${output.empty}">
<h3>No results found.</h3>
</c:when>
<c:otherwise>
<table title="Unique Users Report">
<tr>
<th>Range</th>
<th>Number of Unique Users</th>
</tr>
<tr>
<td>Monday<br />10/29/2012</td>
<td>1990</td>
</tr>
<tr>
<td>Tuesday<br />10/30/2012</td>
<td>1000</td>
</tr>
<tr>
<td>Wednesday<br />10/31/2012</td>
<td>2112</td>
</tr>
<tr>
<td>Thursday<br />11/01/2012</td>
<td>2321</td>
</tr>
</table>
</c:otherwise>
</c:choose>
</c:if>

由于此时输出没有设置到模型中,我什至不应该接触这段代码。将测试“${output.empty}”中的行替换为“${not empty output}”允许 Tomcat 解析此 EL。但是,使用当前的代码,代码失败并出现以下错误(请注意此时甚至没有实现输出,因此模型中没有任何内容):

org.apache.jasper.JasperException: /WEB-INF/jsp/reports/uniqueUsers.jsp(19,3) "${output.empty}" contains invalid expression(s): javax.el.ELException: Error Parsing: ${output.empty}
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1186)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:846)

那么,EL 中是否不允许使用空属性,还是我遗漏了什么?我正在使用 Tomcat 6.0.32。

最佳答案

我在这里找到了答案: http://www.coderanch.com/t/464534/JSP/java/JSTL-empty-keyword

显然你可以使用 ${bean['empty']} 来访问这个属性,这看起来很愚蠢,但确实如此。

关于jsp - 表达式语言中不允许 Javabean 函数为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276949/

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