Поскольку в стандартной JSP / JSTL / EL такой функции, как LENGTH[...]
, нет, рассказать о различиях невозможно.fn:length()
- единственный способ получить длину String
, Object[]
или Collection
.
${fn:length(someCollection)}
Обновление согласно вашему (фиксированному) примеру:
<c:when test="${object.field ne null || LENGTH[object.field] > 0}">
Я никогда раньше такого не видел.Похоже, что ваш webapp / servletcontainer использует собственный распознаватель EL.Если это правда, вы должны увидеть, что это было объявлено в файле web.xml
веб-приложения.
В любом случае, вы бы хотели использовать здесь ключевое слово EL empty
.Он проверяет не только null
, но и длину String
, Object[]
или Collection
.
<c:when test="${not empty object.field}">
. Нет необходимости fn:length()
здесь.
Обозначение скобки []
, в свою очередь, часто используется для доступа к свойствам с помощью динамических клавиш.Например,
${bean[propertyname]}
Если propertyname
разрешает "foo", то вышеприведенное делает то же самое, что и ${bean.foo}
.Он также часто используется на Map
объектах в области видимости.