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 に答える