gpt4 book ai didi

jsf - 用于创建动态表单的 Primefaces Datatable 和 InputText 元素

转载 作者:行者123 更新时间:2023-12-02 05:06:48 25 4
gpt4 key购买 nike

我有一个关于在 primefaces 数据表中使用 inputText 元素的问题。

Xhtml 如下所示

<h:form >
<h:panelGrid columns="2">
<p:commandButton action="#{offerController.addNewOfferRow}" update="panel1" id="iconOnly1"
icon="ui-icon-circle-plus" value="Yeni Satır" title="Icon Add" style="width:220px;" />


</h:panelGrid>
<p:dataTable id="panel1" var="offer" value="#{offerController.offerIds}" style="align: center;">
<p:column id="modelHeader" style=" margin-left: auto; margin-right: auto; width:70%;" >
<f:facet name="header">
Eklenecek Offerlar
</f:facet>

<p:inputText id="addOfferId" value="#{offer}" style=" margin-left: auto; margin-right: auto; width:70%;" />

</p:column>


</p:dataTable>

我的 java bean 如下所示:

@ManagedBean
@ViewScoped


public class OfferController implements Serializable{

/**
*
*/

private static final long serialVersionUID = -1552493989687233258L;
private static final int defaultNumberOfRows = 6;
private List<String> offerIds = new LinkedList<String>();


public OfferController() {
super();
for(int i=0;i<defaultNumberOfRows;i++){
offerIds.add("");
}

}

public void addOffers(){
// do some op.
}

public void addNewOfferRow(){
offerIds.add("");
}

public getOfferIds(){
return offerIds;
}

public setOfferIds(List<String> offerIds){
this.offerIds = offerIds;
}


}

使用上述代码时。我想在数据表中的 inputText 元素中显示字符串项列表。

并且 addNewOfferRow 操作将新元素添加到 List 并在客户端更新数据表。

但是在提交表单后,所有 inputText 元素都不会存储用户输入的值。

我如何使用这些数据表结束 inputText 元素来创建动态行表单。

谢谢。

最佳答案

您正在使用不允许 inputText 元素设置列表项值的字符串列表(不可变类型)。

使用包含字符串的包装类作为您的列表项。

<p:dataTable var="item" value="#{listBean.list}">
<p:column>
<p:inputText value="#{item.name}" />
</p:column>
</p:dataTable>

关于jsf - 用于创建动态表单的 Primefaces Datatable 和 InputText 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10464828/

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