gpt4 book ai didi

jsf - Primefaces:向数据表添加新行会出现错误:启用选择时,DataModel 必须实现 org.primefaces.model.SelectableDataModel

转载 作者:行者123 更新时间:2023-12-03 02:36:23 25 4
gpt4 key购买 nike

我有一个数据表,我想在其中添加新行。这样做时我收到以下错误javax.servlet.ServletException:启用选择时,DataModel 必须实现 org.primefaces.model.SelectableDataModel。

如何解决我的问题?

这是在我的 xhtml 中

<h:commandLink  action="#{workOrderDetail.addOrderItem}" >
<img src="${path.staticRootUrl}images/add.png" border="0" alt="${msg.workorderdetail_neworderitem}" title="${msg.workorderdetail_neworderitem}"/>
</h:commandLink>
<p:dataTable styleClass="ptable100" id="orderItems" var="orderItem" value="#{workOrderDetail.orderItems}" width="100%" height="200" widgetVar="results"
emptyMessage="#{msg.all_lists_no_records_found}" selection="#{workOrderDetail.selectedOrderItem}" selectionMode="single" onRowSelectUpdate=":detail:sub"
rowKey="#{orderItem.id}"
<p:ajax event="rowSelect" update=":detail:sub" />

这是我的 bean 代码

List<IMWSOrderItem> orderList = null;
public void addOrderItem() throws MWSException {
IMWSOrderItem newOrderItem = getWorkOrder().getMWSOrder().getMWSOrderItem_Set().getNewMWSOrderItem();
getWorkOrder().getMWSOrder().getMWSOrderItem_Set().addMWSOrderItem(newOrderItem);
orderList = null;
}
public List<IMWSOrderItem> getOrderItems() throws MWSException {
if (orderList == null) {
orderList = new ArrayList(Arrays.asList(getWorkOrder().getMWSOrder().getMWSOrderItem_Set().getMWSOrderItems()));
}
return orderList;
}
public IMWSOrderItem getSelectedOrderItem() {
return selectedOrderItem;
}
public void setSelectedOrderItem(IMWSOrderItem newSelectedOrderItem) {
this.selectedOrderItem = newSelectedOrderItem;
}

最佳答案

好的,找到问题了。当添加一个新的item时,它的id默认为null,并且id作为rowkey。所以我在添加新的 id 时将 id 初始化为 -1 并且它有效。

关于jsf - Primefaces:向数据表添加新行会出现错误:启用选择时,DataModel 必须实现 org.primefaces.model.SelectableDataModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815919/

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