gpt4 book ai didi

JSF PrimeFaces 动态数据表映射

转载 作者:行者123 更新时间:2023-12-04 21:37:56 26 4
gpt4 key购买 nike

努力处理 PrimeFaces 和 dataTable 上的动态表格内容。
目标是动态呈现表格列标题和内容。

这是我的bean代码:

@ManagedBean(name="treeBean")
@SessionScoped
public class TreeBean implements Serializable {
private static Logger log = Logger.getLogger(TreeBean.class);
private static final long serialVersionUID = 1L;
private List<TableColHeader> tableColHeaderList;

/** Project-specific data structure. One list entry per one table row, Integer in Map is number of column */
private List<Map<Integer,String>> tableContent;

public TreeBean() {
tableColHeaderList=MockedDataProvider.getDemo1ColHeaderList();
tableContent=MockedDataProvider.getDemo1TableContent();
log.info("TreeBean started");
}

public int getTableColHeaderIndex(TableColHeader tableColHeader) {
return tableColHeaderList.indexOf(tableColHeader);
}

public List<TableColHeader> getTableColHeaderList() {
return tableColHeaderList;
}

public void setTableColHeaderList(List<TableColHeader> tableColHeaderList) {
this.tableColHeaderList = tableColHeaderList;
}

public List<Map<Integer,String>> getTableContent() {
return tableContent;
}

public void setTableContent(List<Map<Integer,String>> tableContent) {
this.tableContent = tableContent;
}

public List<Integer> getTableContentIdKeysAsList(int id){
return new ArrayList<Integer>(tableContent.get(id).keySet());
}
}

TableColHeader.java - 作为模型:
public class TableColHeader {   
private String propertyUri;
private String label;
private String unitLabel;
private String unitUri;
//getters,setters,equals,hashCode..
}

这是我的 JSF 页面 dataTable 代码:
<p:dataTable id="queryResults" var="tableContentVar" value="#{treeBean.tableContent}">                                               
<p:columns value="#{tableBean.tableColHeaderList}" var="column" >
<f:facet name="header">
#{column.label}
</f:facet>
<h:outputText value="#{tableContentVar.values().toArray()[treeBean.getTableColHeaderIndex(column)]}" />
</p:columns>
</p:dataTable>

我已阅读有关空 columnIndexVar 值的问题为 https://code.google.com/p/primefaces/issues/detail?id=4449 ,但从 bean 获取索引也无济于事。

我只是在 dataTable 应该在的地方看不到任何东西,也没有异常(exception)。
有什么想法吗?

使用 Primefaces 3.5 和 JBoss 7.1.1.Final。

最佳答案

感谢@partlov,这里错误的是引用了 tableBean而是在 treeBean在 JSF 代码中。

所以这里是工作代码:

<p:dataTable id="queryResults" var="tableContentVar" value="#{treeBean.tableContent}" >                                              
<p:columns value="#{treeBean.tableColHeaderList}" var="column" >
<f:facet name="header">
#{column.label}
</f:facet>
<h:outputText value="#{tableContentVar.values().toArray()[treeBean.getTableColHeaderIndex(column)]}" />
</p:columns>
</p:dataTable>

关于JSF PrimeFaces 动态数据表映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15405279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com