JSTL: найти общий размер двух списков - PullRequest
1 голос
/ 27 сентября 2011

У меня есть два списка на странице, и они показывают объединенный размер этих двух списков.

Вот мой код

<c:set var="totalAvailableVehicles" value="${fn:length(searchResult.availableVehicleList)}"/>
<c:set var="totalUvailableVehicles" value="${fn:length(searchResult.unavailableVehicleList)}"/>
<c:out value="${totalAvailableVehicles + totalUvailableVehicles}"/></strong> record found matching your search criteria</p>

Есть ли лучший способ добиться этого без написания пользовательских тегов / функций?

1 Ответ

4 голосов
/ 27 сентября 2011

Я не уверен, что вы имеете в виду под "лучшим способом".Это выглядит отлично.Вы также можете сделать это без <c:set>:

<strong><c:out value="${fn:length(searchResult.availableVehicleList) + fn:length(searchResult.unavailableVehicleList)}"/></strong> record found matching your search criteria</p>

Однако вопрос о том, лучше ли это читать / обслуживать, сомнителен.

Вы также можете переместить это в метод получения из SearchResultbean:

public int getTotalResultSize() {
    return availableVehicleList.size() + unavailableVehicleList.size();
}

с

<strong>${searchResult.totalResultSize}</strong> record found matching your search criteria</p>

Обратите внимание, что <c:out> здесь не требуется (он будет работать так же хорошо в JSP 2.0 и новее).Преимущество <c:out> заключается в том, что HTML-экранирование ввода, управляемого пользователем, предотвращает атаки XSS, но поскольку здесь речь идет о вводе, не контролируемом пользователем, типа int, риск атаки XSS действительно отсутствует.

В конце концов, это действительно не имеет значения, если вы в конечном итоге достигнете степени читабельности / удобства обслуживания, с которой согласна ваша команда.

...