无法确定jsp中的列表大小

时间:2012-07-31 15:23:31

标签: java list jsp view

我正在尝试确定视图中集合的大小。我不想像.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}事情正常时,{I} ${searchResults.size()}我收到错误Class javax.el.BeanELResolver can not access a member of class java.util.ArrayList$SubList with modifiers "public"

我无法弄清楚为什么这会窒息。有人可以提供一些见解吗?

2 个答案:

答案 0 :(得分:5)

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

    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions"
prefix="fn" %>

答案 1 :(得分:2)

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

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

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