【发布时间】:2016-05-06 14:33:28
【问题描述】:
我是 JSF 的新手。
我需要从dataTable 中检索rowData。
这是我的代码:
<h:form>
<h1><h:outputText value="List"/></h1>
<p:dataTable value="#{accountBacking.dataModel}"
binding="#{accountBacking.htmlTable}"
var="item">
<p:column>
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<h:outputText value="#{item.id}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Action"/>
</f:facet>
<p:commandButton value="Submit" action="#{accountBacking.destination()}/>
</p:column>
</p:dataTable>
</h:form>
豆:
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.html.HtmlDataTable;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
@ManagedBean (name = "accountBacking")
@ViewScoped
public class AccountBacking implements Serializable {
private List<Account> daftarAccount;
private DataModel dataModel;
private HtmlDataTable htmlTable;
private AccountFacade service;
private Account account;
@PostConstruct
public void init()
{
}
public DataModel getDataModel() {
dataModel = new ListDataModel();
daftarAccount = service.findAll();
if(daftarAccount != null && daftarAccount.size()>0)
dataModel.setWrappedData(daftarAccount);
return dataModel;
}
public void setDataModel(DataModel dataModel) {
this.dataModel = dataModel;
}
public HtmlDataTable getHtmlTable() {
return htmlTable;
}
public void setHtmlTable(HtmlDataTable htmlTable) {
this.htmlTable = htmlTable;
}
public void destination(){
acount = (Account)htmlTable.getRowData();
}
但是,h:dataTable 内部的绑定标签会导致错误,它说:
Cannot convert org.primefaces.component.datatable.DataTable@4f5b348a of type class org.primefaces.component.datatable.DataTable to class javax.faces.component.html.HtmlDataTable
这是为什么呢?以及如何修复它以便我可以从表中检索rowData?
提前致谢!
【问题讨论】:
-
发生这种情况是因为您在代码中执行的操作...如何解决?将其威胁为 org.primefaces.component.datatable.DataTable 而不是 javax.faces.component.html.HtmlDataTable。如何检索行或行数据?看看 PrimeFaces 展示...你似乎找到了一些非常古老的教程之类的东西
标签: jsf primefaces datatable