Java JSP EL中长度[…]和fn:LENGTH(…)之间的差异
Java JSP EL中长度[…]和fn:LENGTH(…)之间的差异,java,jsp,jstl,el,Java,Jsp,Jstl,El,LENGTH[…]和JSTL函数fn:LENGTH(…)之间有什么区别 我试图寻找差异,但我没有看到任何使用第一个的例子 以下是一个例子: <c:when test="${object.field ne null || LENGTH[object.field] > 0}"> <td valign="top"> .....print something </td> </c:when> ……打印一些东西 由于
LENGTH[…]
和JSTL函数fn:LENGTH(…)
之间有什么区别
我试图寻找差异,但我没有看到任何使用第一个的例子
以下是一个例子:
<c:when test="${object.field ne null || LENGTH[object.field] > 0}">
<td valign="top">
.....print something
</td>
</c:when>
……打印一些东西
由于标准JSP/JSTL/EL中没有类似于LENGTH[…]的函数
,因此无法区分它们之间的区别。是获取字符串
、对象[]
或集合
长度的唯一方法
${fn:length(someCollection)}
<c:when test="${not empty object.field}">
根据您的(固定)示例更新: 这里不需要
fn:length()
大括号符号
[]
依次是通过动态键访问属性的常用方式。例如
${bean[propertyname]}
如果
propertyname
解析为“foo”,则上述操作实际上与${bean.foo}
相同。它也经常用于作用域中的Map
对象。可能是因为第一个不存在?你在哪里读到/听到/看到了第一本书?这不只是对你方的误解吗?大括号符号[]
通常用于通过动态键访问属性。实际上,在我的工作中,他们要求我更改LENGTH[..]的每个实例以使用jstl LENGTH函数。代码正在生产中,所以我知道它正在工作。。。我无法通过谷歌搜索找到长度[],因为谷歌总是忽略[],并最终返回常规的fn:LENGTH函数copyPaste一些使用该函数的代码示例。我假设一个额外的}
只是一个输入错误?这在语法上是错误的。是的,实际上是我这边的一个输入错误,其他一切都是正确的。既然你对答案很有信心,我就假设长度为[]的代码从未执行过(即如果不为真),这就是它没有破坏任何东西的原因。非常感谢您的快速回复。不过,我会在问题中提供一些示例。这也可能是你的误解。也许他们只是想用EL${fn:length(array)}
替换scriptlet
。我完全同意BalusC。我从未见过或见过任何人使用长度函数。
${bean[propertyname]}