3
primefacesデータテーブルでinputText要素を使用する方法について質問があります。Primefaces動的フォームを作成するDatatableと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の文字列項目のリストを表示したいabove.Iコードを使用してデータ可能な要素。
addNewOfferRow操作Listに新しい要素を追加すると、datatableがクライアント側で更新されます。
フォームを送信した後、すべてのinputText要素には、ユーザーが入力した値は格納されません。
どのようにこれらのdatatable end inputText要素を使用して動的行フォームを作成できますか。
ありがとうございました。
送信時にBeanが再作成されるかどうか確認しましたか?コンストラクタ内にブレークポイントを設定して検証します。 –