1

我正在尝试确定视图中集合的大小。我不想像在下面的代码中那样传递大小.size()

@RequestMapping(value = "/search/searchAndReplace")
public ModelAndView searchAndReplace(HttpServletRequest request, HttpServletResponse response) {
    ModelAndView model = new ModelAndView("content/search/searchAndReplace");

    List<Content> searchResults = (List<Content>) request.getSession().getAttribute("searchResults");
    model.addObject("searchResults", searchResults);
    model.addObject("searchResultsCount", searchResults.size());

    return model;
}

在我看来,当我做的${searchResultsCount}事情正常时,当我做的时候${searchResults.size()}我得到了错误Class javax.el.BeanELResolver can not access a member of class java.util.ArrayList$SubList with modifiers "public"

我不明白为什么会窒息。有人可以提供一些见解吗?

4

2 回答 2

5

在您的示例中,EL 解析器size在对象上查找属性,但对象上没有方法getSize()。相反,请使用 EL 表达式fn:length(searchResults)。您需要为此定义fn命名空间:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions"
prefix="fn" %>
于 2012-07-31T15:29:39.690 回答
2

我很确定您需要先将其转换为它的对象类型。

<%
List<Content> searchResults = (List<Content>)request.getAttribute("searchResults");
%>

比你应该能够使用 ${searchResults.size()}

于 2012-07-31T15:32:43.760 回答