Mat*_*hew 5 java jsp javabeans
我在一些JSP页面中大量使用ArrayList.我想像这样访问一个ArrayList:
${myArrayList.size}
Run Code Online (Sandbox Code Playgroud)
但由于对象必须符合JavaBean规范,其中myArrayList.getMyPropertyName()是${myArrayList.myPropertyName}在JSP/JSTL,该myArrayList.size()功能是不可访问.
还有我应该使用的另一课吗?
更新:
有一点很难接受一个功能,例如在JSP中获取ArrayList的大小只是为了更清晰的一个衬里,但似乎设计师选择的其他原因.size()而不是.getSize()
我想如果您有支持${fn:length(myArrayList)}或${myArrayList.getSize()}语法,这确实不是问题.
rua*_*akh 11
标题说明了一切:为什么ArrayList没有getSize()而不是size()?
如" Java Collections API Design FAQ "中所述:
为什么不使用"豆式名称"来保持一致性?
虽然新收集方法的名称不符合"Beans命名惯例",但我们认为它们是合理,一致且适合其目的的.应该记住,Beans命名约定不适用于整个JDK; AWT确实采用了这些惯例,但这个决定有点争议.我们怀疑集合API将被普遍使用,通常在一行代码上进行多次方法调用,因此名称很短很重要.例如,考虑Iterator方法.目前,集合上的循环如下所示:
for (Iterator i = c.iterator(); i.hasNext(); ) System.out.println(i.next());即使Collection名称是一个长表达式,所有内容都整齐地排列在一行上.如果我们将方法命名为"getIterator","hasNextElement"和"getNextElement",则不再是这种情况.因此,我们采用了"传统的"JDK风格而不是Beans风格.
您使用fn:lengthJSTL函数(请参阅文档).
首先,fn在JSP的顶部声明命名空间:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
Run Code Online (Sandbox Code Playgroud)
然后:
${fn:length(myArrayList)}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3208 次 |
| 最近记录: |