如何访问 getFirst() 和 getFirst()从 JSF 页面获取Last()?
我有一个定义为 List< 的 java 对象列表<链表> > >。但是,当我在表上打印数据并执行下一步操作时,它会起作用:
<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()。我怎么能这样做呢?
非常感谢您的支持! ;-)
I have a java object defined as List< List< LinkedList > > >. However, when I print the data on a table and do the next thing, it works:
<f:verbatim>selectableDiv.first=</f:verbatim><h:outputText value="#{column[rowCount][0]"/>
However, if do any of the following things, it crashes:
<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']}"/>
I would like to access the LinkedList methods getFirst() and getLast(). How could I do this?
Thanks a lot for your support! ;-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这在标准 EL 中是不可能的。每当对象是
List
的实例时,它都会受到ListELResolver
。您只能通过整数索引访问该项目。 EL 没有对 LinkedList 的专门支持。您需要为此编写一个自定义ELResolver
,但更简单的方法是将LinkedList
包装在 Javabean 中并将调用委托给它。That's not possible in standard EL. Whenever the object is an instance of
List
, it get special treatment byListELResolver
. You can only access the item by an integer index. EL has no specialized support forLinkedList
. You'd need to write a customELResolver
for this, but easier is to just wrap theLinkedList
in a Javabean and delegate the calls to it.我建议您向控制器(主)类编写一个方法,用于按索引获取内部列表。
i suggest you to write a method to your controller (home) class for getting inner lists by index.
作为 BalusC 所说的替代方案(这是个好建议),您还可以创建自己的 EL 函数。
这实际上相当简单,并且如果您在更多页面上需要这种功能,则可以提供更多的重用。
使用自定义 EL 函数,您可以说:
As an alternative to what BalusC says (which is good advice), you can also create your own EL function.
This is actually rather simple and provides more reuse if you need this kind of functionality on more pages.
With a custom EL function you can eg say: