在JSP页面中获取List.size()的值?

时间:2015-11-30 22:53:55

标签: java jsp

这是一个简单的问题,我应该知道答案,我很惭愧承认我没有。我正在向JSP页面发送一个复合对象:

public class MyObject {
    private List<MyFoo> myFoo;
    public getMyFoo();
    public setMyFoo();
}

// In the controller...
model.addAttribute("myObject", myObject);

当这进入JSP页面时,我可以将myObject的模型实例称为:

${myObject}

和里面的列表

${myObject.myFoo}

想要做的是在我的JSP输出中列出myFoo的大小,如下所示:

${myObject.myFoo.size}

但当然size()不是bean属性,因此抛出JSPException。

在JSP页面中有一种简单,优雅的方法吗?或者我需要在模型上粘贴另一个属性并将大小放在那里?

2 个答案:

答案 0 :(得分:8)

您可以使用JSTL标记库,它们通常对常见的JSP操作很有用。这是一个快速参考: https://code.google.com/p/dlcode/downloads/detail?name=jstl-quick-reference.pdf

在此行中包含taglib:

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

然后你的案子将是:

${fn:length(myObject.myFoo)}

答案 1 :(得分:1)

一种合理的(但可能不够优雅)方式是添加一个吸气剂功能:

public getMyFooSize() { return myFoo.size(); }

然后在JSP中使用以下内容:

${myObject.myFooSize}