【发布时间】:2012-02-01 20:44:56
【问题描述】:
我正在尝试在具有多个运算符的 JSTL 中编写条件。
<c:if test="${!memberObj.provider && empty subscriptions or subscriptions eq false}"></c:if>
上面没有正确执行,因为需要包含“empty subscriptions or subscriptions eq false”。
我希望能够做到:
${!memberObj.provider && (empty subscriptions or subscriptions eq false)}
但是当我这样做时,jsp 页面变为空白。我猜这意味着有些事情发生了......
如何在 JSTL 中将“and”和“or”运算符组合在一个条件中?
提前致谢!
【问题讨论】:
-
看起来有效(虽然有点笨拙)。空白不是只是由其他原因引起的吗?当响应已经提交时,JSP 代码中的异常是否更进一步?右键单击页面并执行 View Source 以查看浏览器实际检索到的内容。大多数人在检索到半生不熟的 HTML 时也会空白。
-
有点离题,但根据运算符优先级
!memberObj.provider && empty subscriptions or subscriptions eq false与!memberObj.provider && (empty subscriptions or subscriptions eq false)不同 -
好吧,你是对的,它实际上发生在页面的下方。因此,当条件正确运行时,它会运行到页面上不应该出现的一些 java 代码,这可以通过改进条件以更好地处理它来解决。谢谢!继续发表您的评论作为答案,以便我接受。