...-6ren">
gpt4 book ai didi

java - JSP EL 中 LENGTH[...] 和 fn :length(. ..) 的区别

转载 作者:行者123 更新时间:2023-12-03 18:41:50 26 4
gpt4 key购买 nike

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()是获取 StringObject[]Collection 长度的唯一方法。

${fn:length(someCollection)}

更新根据您的(固定)示例:

<c:when test="${object.field ne null || LENGTH[object.field] > 0}"> 

我以前从未见过这个。看起来您的 webapp/servletcontainer 正在使用自定义 EL 解析器。如果这是真的,您应该会看到它已在 webapp 的 web.xml 文件中声明。

无论如何,您更愿意在这里使用 EL empty 关键字。它不仅检查 null,还检查 StringObject[]Collection 的长度。

<c:when test="${not empty object.field}"> 

这里不需要fn:length()


大括号 [] 反过来又经常用于通过动态键访问属性。例如

${bean[propertyname]}

如果 propertyname 解析为“foo”,那么上面的内容实际上与 ${bean.foo} 相同。它也经常用于作用域中的 Map 对象。

关于java - JSP EL 中 LENGTH[...] 和 fn :length(. ..) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4134655/

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