我在一个页面上有两个列表,并显示这两个列表的组合大小。
这是我的代码
<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>
有没有更好的方法来实现相同而不编写自定义标签/功能?
答案 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攻击风险。
毕竟,只要你最终获得团队同意的可读性/可维护性,它就没关系。