带JSTL的JSP中的NumberFormatException ArrayList size Javabean方法

带JSTL的JSP中的NumberFormatException ArrayList size Javabean方法,jsp,jstl,javabeans,numberformatexception,Jsp,Jstl,Javabeans,Numberformatexception,我对JSTL和Javabeans有点陌生,所以我很难弄明白这一点 我有一个index.jsp、一个扩展ArrayList的名为CustomerScheme的类和一个用于输出的test.jsp index.jsp包含以下代码,并具有指向test.jsp的链接: <jsp:useBean id="scheme" scope="session" class="customer.beans.CustomerScheme"> <% // Open a strea

我对JSTL和Javabeans有点陌生,所以我很难弄明白这一点

我有一个index.jsp、一个扩展ArrayList的名为CustomerScheme的类和一个用于输出的test.jsp

index.jsp包含以下代码,并具有指向test.jsp的链接:

<jsp:useBean id="scheme" scope="session" class="customer.beans.CustomerScheme">

    <%
        // Open a stream to the init file
        InputStream stream =
                application.getResourceAsStream("/fm.txt");

        // Get a reference to the scheme bean
        CustomerScheme custScheme =
                (CustomerScheme) pageContext.findAttribute("scheme");

        // Load colors from stream
        try {
            custScheme.load(stream);
        } catch (IOException iox) {
            throw new JspException(iox);
        }
    %>

</jsp:useBean>
CustomerScheme有更多的代码。如果你需要的话,我会把它寄出去

我的问题是:无论何时运行程序,我都从index.jsp开始,单击链接转到test.jsp,然后获得以下内容:

<c:set var="size"><jsp:getProperty name="scheme" property="size"/></c:set>
size : <c:out value="${size}"/>

javax.el.ListELResolver处理
java.util.List
类型的基本对象。它接受任何对象作为属性,并将该对象强制为列表中的整数索引

因此,您需要调用
getSize()
方法-
${scheme.getSize()}
或使用

或者,您可以在
customer.beans.CustomerScheme
中创建
列表,而不是扩展
ArrayList

公共类客户模式{
私有列表=新的ArrayList();
公共int getSize(){
返回list.size();
}
..
}

如果不想创建额外的包装类,可以执行以下操作:

<c:set var="size"><jsp:getProperty name="scheme" property="size"/></c:set>
size : <c:out value="${size}"/>

尺寸:

EL
将对象视为
贴图
(强制因子)无法解析
大小
字段。因此,您需要调用
getSize()
方法-${scheme.getSize()}或使用
Hmm,好的。出于某种原因,我认为您可以访问如下属性:${guy.name.firstName},如果guy有一个函数getName(),并且该名称有一个函数getFirstName()。有没有类似的东西我可能会把它搞混了?--顺便说一句,你的评论解决了我的问题,如果你把它作为答案提交,我会给你正确的答案。
public class CustomerScheme{
  private List<Customer> list=new ArrayList<Customer>();
  public int getSize(){
         return list.size();
  }
  ..
}
<c:set var="size"><jsp:getProperty name="scheme" property="size"/></c:set>
size : <c:out value="${size}"/>