如何从 JSF 页面访问 getFirst() 和 getLast()?



我有一个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])}

相关内容

  • 没有找到相关文章

最新更新