我正在尝试确定视图中集合的大小。我不想像.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"
我无法弄清楚为什么这会窒息。有人可以提供一些见解吗?
答案 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()}