Я работаю над внешним интерфейсом проекта, который предоставляет мне теги Java Expression Language для работы.В одном случае мне нужно посмотреть, возвращает ли он массив или только один бит данных, и я не знаю, как с ним работать.
Пример:
На странице есть
<p>${WebAppContext.buildings[0].location.name}</p>
, который выдаст что-то вроде:
<p>Acme</p>
Проблема в том, что мне нужно выводить больше, если в этих зданиях есть бит:
Что-то вроде (в псевдокоде):
if isArray(${WebAppContext.buildings}){
foreach(${WebAppContext.buildings} as foo){
//iterate over whatever is in the array
}
}
, чтобы я мог вывести что-то вроде:
<p>${WebAppContext.buildings[0].location.name}</p>
<p>${WebAppContext.buildings[1].location.name}</p>
Я спросил людей, ответственных за Java для генерации этого кода, и они сказали: «Не знаю, как дела».так что я надеюсь, что у вас, ребята, будет некоторое понимание.
Помимо того, что я не буду вставлять код на страницу, я понятия не имею, как работать с этим языком Java-выражений (мне даже пришлось посмотреть его, чтобы увидетькакого чёрта это называется).Поэтому любые советы / ресурсы будут полезны.
РЕДАКТИРОВАТЬ:
Я пробовал следующее и не получаю никаких результатов:
<c:forEach var='building' items='${WebAppContext.buildings}'>
<p>${building.location.name}</p>
</c:forEach>
В источнике страницы просто показано:
<c:forEach var='meeting' items='[Lorg.foo.bar.baz.bat.serviceapi.webserviceobject.xsd.BuildingsWSO;@3823ff8'>
<p></p>
</c:forEach>
Я признаю, что, ничего не зная о языке выражений Java, я не понимаю, почему переводится items = ''как это происходит, хотя я вижу, что он следует по пути в настройке, которую мы используем.Теперь, когда я использую:
<p>${WebAppContext.buildings[0].location.name}</p>
<p>${WebAppContext.buildings[1].location.name}</p>
, я получаю:
<p>Krustylu Studios</p>
<p>Springfield Nuclear Power Plant</p>