【问题标题】:JSTL : Find the total of size of two listsJSTL:查找两个列表的总大小
【发布时间】:2011-11-26 04:01:28
【问题描述】:

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

这是我的代码

<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>

有没有更好的方法可以在不编写自定义标签/函数的情况下实现相同的目标?

【问题讨论】:

    标签: jsp servlets coding-style jstl


    【解决方案1】:

    我不确定您所说的“更好的方式”是什么意思。这看起来非常好。你也可以不用&lt;c:set&gt;:

    <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>
    

    请注意,这里不需要&lt;c:out&gt;(它在 JSP 2.0 和更高版本中也可以正常工作)。 &lt;c:out&gt; 的好处是用户控制输入的 HTML 转义,以防止 XSS 攻击,但由于这里涉及 int 类型的非用户控制输入,因此确实没有 XSS 攻击风险。

    毕竟,只要您最终获得团队同意的一定程度的可读性/可维护性,这真的无关紧要。

    【讨论】:

    • 嗨@BalusC,我之前也试过,结果org.apache.jasper.JasperException: /WEB-INF/views/searchCarsResult.jsp(310,18) "${(fn:length(searchResult.availableVehicleList) + fn:length(searchResult.availableVehicleList)}" contains invalid expression(s): javax.el.ELException: Error Parsing: ${(fn:length(searchResult.availableVehicleList) + fn:length(searchResult.availableVehicleList)}这是一个错字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2012-04-18
    • 2021-07-28
    • 2016-12-21
    • 2021-01-25
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多