JSTL:查找两个列表的总大小

时间:2011-09-27 15:28:14

标签: jsp servlets coding-style jstl

我在一个页面上有两个列表,并显示这两个列表的组合大小。

这是我的代码

<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 个答案:

答案 0 :(得分:4)

我不确定你用“更好的方式”是什么意思。这看起来非常好。您也可以在没有<c:set>的情况下执行此操作:

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

然而,这是否更好的可读性/可维护性是值得怀疑的。

您还可以将其移动到SearchResult bean的getter方法:

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攻击风险。

毕竟,只要你最终获得团队同意的可读性/可维护性,它就没关系。