我有一个java对象定义为List
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount][0]"/>
但是,如果做了以下任何一件事,它就会崩溃:
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].first}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].getFirst()}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].getFirst}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount].First}"/>
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount]['first']}"/>
我想访问LinkedList方法getFirst()和getLast()。我怎么能这么做?
非常感谢您的支持!: -)
这在标准EL中是不可能的。只要对象是List
的实例,它就会得到ListELResolver
的特殊处理。您只能通过整数索引访问项。EL对LinkedList
没有专门的支持。您需要为此编写一个自定义的ELResolver
,但更简单的方法是将LinkedList
包装在Javabean中并将调用委托给它。
我建议你写一个方法到你的控制器(家)类获得内部列表的索引。
作为BalusC所说的替代方法(这是一个很好的建议),您还可以创建自己的EL函数。
这实际上是相当简单的,并提供更多的重用,如果你需要这种功能在更多的页面。
使用自定义EL函数,您可以这样说:
#{funct:first(column[rowcount])}