【发布时间】:2013-07-17 12:18:29
【问题描述】:
JSP页面代码
<rich:dataTable id="journalTable" value="#{sessionBean.currentPageDataList}"
var="row" >
<rich:columns value="#{row}" var="column">
<f:facet name="header">
<h:outputText value="#{column}"/>
</f:facet>
<h:outputText value="#{column}"/>
</rich:columns>
</rich:dataTable>
我需要从 dataTable 中获取“var”,因为它是从列表数组中创建的
List[] list = new ArrayList()[];
它看起来类似于二维数组和嵌套循环。
如何获得访问权限? 或者可能存在其他方式?
【问题讨论】:
-
那么,每一行都有不同数量的列?您究竟会如何在 HTML
<table>中明智地呈现它?这没有任何意义。<rich:columns value>应该只从#{sessionBean}获取其值,而不是从#{row}。 -
Datatable 的 var 是列表数组的一个列表。列 var 由隐式 foreach 创建,用于此列表,列表的每个元素都从当前 rom 转到每个单元格。这就是机制。任务是找到在 columns 块中使用 datatable 的 var 的方法,使用 jsf 1.2 之前我使用 jsf 2.1,我没有遇到这样的问题。方法是在方法调用中传递参数。但。据我了解,没有办法做到这一点。
-
我不是这个意思。
<rich:columns>已经为 每个 行生成了 same 列。它的值只被评估一次。如果这对您有用,那么您显然已经有了一个模型,每行中的列数相同且固定。您最初传递的那个参数显然只是从第一行本身而不是直接从 bean 中提取信息的一种不经思考的解决方法。您可以改为向#{sessionBean}添加一个 getter 方法,该方法直接从第一行提取该数据。
标签: jsp jsf richfaces jsf-1.2 richdatatable