ユーザーが質問に複数のオプションを追加できるフォーム メーカーを設計しています。そのため、すべてのオプションに新しいオプションの追加ボタンと削除ボタンがあります。追加するオプションの数がわからないため、オプションを動的に追加/削除するために、Facelets ページでa を使用し、マネージド Bean で adataTable
にバインドしたいと考えています。HtmlDataTable
だから私がしたことは、 my の値が文字列dataTable
の aList
であるということです。入力テキスト (オプション) が追加および削除され、質問全体を追加すると、DB に正しく保存されます。しかし、追加または削除ボタンが押されるたびに、私のオプションはすべて空であるため、ユーザーはそれらを再度入力する必要があります。私のコードは少し長いので、簡略化したバージョンを提供します。
私のFaceletsページには次のものがあります:
<h:dataTable value="#{questionMaker.selectOneOptionList}" var="option" binding="#{questionMaker.table}">
<h:column>
<h:inputText value="#{option}"/>
<h:commandLink value="remove option" action="#{questionMaker.removeRadioButtonOption}"/>
</h:commandLink>
</h:column>
</h:dataTable>
そして、私の管理対象 Bean では、上記の変数は次のとおりです。
private HtmlDataTable table;
private List<String> selectOneOptionList;
もちろん、ゲッターとセッターもあります。これは私の追加方法です:
public void addRadioButtonOption() {
String option = new String();
selectOneOptionList.add(option);
}