带JSTL的JSP中的NumberFormatException ArrayList size Javabean方法
我对JSTL和Javabeans有点陌生,所以我很难弄明白这一点 我有一个index.jsp、一个扩展ArrayList的名为CustomerScheme的类和一个用于输出的test.jsp index.jsp包含以下代码,并具有指向test.jsp的链接:带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
<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}"/>