【问题标题】:Using ui:repeat to output a ResultSet使用 ui:repeat 输出 ResultSet
【发布时间】:2011-10-22 19:38:52
【问题描述】:

JSF 2.0 中 ui:repeat 标记的文档说您可以迭代 ResultSet 但我的代码:

<ui:repeat value="#{bean.resultSet}" var="row" varStatus="status">
   #{row.string("mySQLColumn")}
</ui:repeat>

产生这个错误:

javax.faces.FacesException: Iteration start index is greater than the number of available rows.
    at com.sun.faces.facelets.component.UIRepeat.validateIterationControlValues(UIRepeat.java:682)
    at com.sun.faces.facelets.component.UIRepeat.process(UIRepeat.java:505)
    at com.sun.faces.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:974)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)

【问题讨论】:

  • 这似乎至少发生在空的ResultSet。我希望它在这种情况下根本不会迭代,但它会引发异常。

标签: sql-server jsf jdbc jsf-2 resultset


【解决方案1】:

尽管它似乎被支持作为迭代的参数,但最好先将其转换为List,然后再进行迭代。

这样您就不会将数据库访问技术传播到视图层。

【讨论】:

猜你喜欢
  • 2016-12-31
  • 1970-01-01
  • 2012-05-22
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多