将 primefaces 数据表与 org.primefaces.component.datatable.DataTable 绑定;

Posted

技术标签:

【中文标题】将 primefaces 数据表与 org.primefaces.component.datatable.DataTable 绑定;【英文标题】:Binding primefaces dataTable with org.primefaces.component.datatable.DataTable; 【发布时间】:2012-04-08 02:09:28 【问题描述】:

我有一个关于 primefaces 数据表组件的问题。我想将一个 DataTable 变量绑定到 p:dataTable 以便我能够以编程方式从支持 bean 操作第一个、行、rowsPerPageTemplate 等。但我被卡住了,一直在获取 java.lang.String 无法转换为 javax.faces.component.UIComponent。

这是我的 p:dataTable 声明。

<p:dataTable id="dtProductCategoryList" value="#saProductCategoryController.saproductcategories" rowsPerPageTemplate="#appConfig.rowsPerPageTemplate" 
                             paginatorTemplate="RowsPerPageDropdown FirstPageLink PreviousPageLink CurrentPageReport NextPageLink LastPageLink" 
                             currentPageReportTemplate="currentPage #bundle.DataTablePageSeparator totalPages"
                             paginatorAlwaysVisible="false" var="item" paginator="true" rows="#appConfig.rowsPerPageDefault"
                             binding="saProductCategoryController.dtProductCategory">

这是我的 ViewScoped 支持 bean。

    private DataTable dtProductCategory;

/** Creates a new instance of saProductCategoryController */
public SaProductCategoryController() 


@PostConstruct
public void Init() 
    try 
        dtProductCategory = new DataTable();
        //dtProductCategory.
        saproductcategories = saProductCategoryFacade.selectAll();            
        LogController.log.info("Creating postconstruct for saProductCategoryController");
     catch (Exception ex) 
        LogController.log.fatal(ex.toString());
    

可能是什么问题?好像DataTable变量被误认为是String?

感谢您的所有帮助。谢谢。

【问题讨论】:

【参考方案1】:

java.lang.String 不能转换为 javax.faces.component.UIComponent。

binding 属性必须引用 UIComponent,而不是普通的 String。实际上,您忘记了属性值周围的#,这将使其被视为普通的香草String

相应地修复它:

binding="#saProductCategoryController.dtProductCategory"

【讨论】:

【参考方案2】:

替换

binding="saProductCategoryController.dtProductCategory"

binding="#saProductCategoryController.dtProductCategory"

【讨论】:

谢谢马特。知道了。太多的代码,我错过了显而易见的。谢谢

以上是关于将 primefaces 数据表与 org.primefaces.component.datatable.DataTable 绑定;的主要内容,如果未能解决你的问题,请参考以下文章

将 PrimeFaces 与 JSF 一起使用时 Shiro 重定向到错误的位置

如何在 Primefaces 的数据表中迭代 Map<String,Collection>

如何将样式应用于 PrimeFaces 数据表?

如何将 primeface 列包含到组合中

Primefaces 与 Wildfly 中的 Yasson 有啥关系吗?

如何将PrimeFaces p:selectManycheckbox值插入数据库