Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP EL中长度[…]和fn:LENGTH(…)之间的差异_Java_Jsp_Jstl_El - Fatal编程技术网

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]}