现在无论我是否设置记录属性,都会显示删除按钮:
<c:if test='${not empty "${records}"}'>
<input type="submit" name="delete" value="delete selected"/>
</c:if>
在正常情况下,记录属性我传递ArrayList,然后使用foreach,但有时ArrayList 是空的,所以在这些情况下我不想显示删除按钮,我认为实现这一点的最简单方法是使用这个空运算符。我哪里出错了?
我什至尝试手动将此属性设置为 null:
if (ar.size() != 0)
request.setAttribute("records", ar);
else
request.setAttribute("records",null);
编辑:
@Qwe:是的,你是对的,它之前对我有用,因为我以我的方式测试了属性是否为空,它总是正确的,因为我使用了错误的构造,但它有效,因为我只想显示一个字符串,如果有的话没有任何字符串,所以我认为一切正常。
现在无论我是否设置记录属性,都会显示删除按钮:
<c:if test='${not empty "${records}"}'>
<input type="submit" name="delete" value="delete selected"/>
</c:if>
在正常情况下,记录属性我传递ArrayList,然后使用foreach,但有时ArrayList 是空的,所以在这些情况下我不想显示删除按钮,我认为实现这一点的最简单方法是使用这个空运算符。我哪里出错了?
我什至尝试手动将此属性设置为 null:
if (ar.size() != 0)
request.setAttribute("records", ar);
else
request.setAttribute("records",null);
编辑: @Qwe:是的,你是对的,它之前对我有用,因为我以我的方式测试了属性是否为空,它总是正确的,因为我使用了错误的构造,但它有效,因为我只想显示一个字符串,如果有的话没有任何字符串,所以我认为一切正常。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以及
(来自您的评论)将始终解析为true,因为您实际上正在测试字符串${记录}
是否为空,以及显然不是。只是为了确定 - String
${records}
我指的是一个 String 值,就像您在 Java 中分配它一样String foo = "${records}";
。下一行代码将测试
records
变量(从页面、请求、会话或应用程序范围查找)是否为空:该行代码 100% 保证可以工作:)
另外, 而是。
request.setAttribute("records",null)
是删除属性的不好方法,因为empty
不仅测试请求范围,还测试页面、会话等。使用<c:if test='${not empty "${records}"}'>
as well as<c:if test="${!empty '${showWarning}'}">
(from your comment) will always resolve to true because you're are actually testing if a String${records}
is empty or not, and obviously it is not.Just to be sure - by String
${records}
I mean a String value, just as if you were assigning it in Java likeString foo = "${records}";
.The next line of code will test if
records
variable (that is looked up from page, request, session or application scope) is empty or not:The line of code is 100% guaranteed to work :)
Also,
request.setAttribute("records",null)
is a bad way to remove attributes becauseempty
tests not just request scope, but page, session etc. Use<c:remove var='records'/>
instead.