以下の表は、質問と回答の形式です。最初にテーブルに質問が表示され、ユーザーがリセット ボタンをクリックすると、ドロップダウン ボックスが表示されます。また、ユーザーは質問をリセットできます。ここでの問題は、リセットをクリックして質問を変更し、保存ボタンをクリックすると、Bean クラスが更新された質問を取得できなかったことです。前の質問を出力します。以下は私のコードです::
<p:dataTable id="alphaTable" var="cs" binding="#{challengeSetBean.alphaChallengeSetTable}"
value="#{challengeSetBean.challengeSet}">
<p:column id="col" style="width:20px;font-size:12px;padding-left:7px;padding-bottom:7px;padding-top:7px;">
<p:panel columns="1" style="border:0px;">
<h:outputText value="#{cs.question}" id="question" rendered="#{!cs.editMode}"/>
<p:selectOneMenu value="#{cs.id}" rendered="#{cs.editMode}" id="questionDropDown">
<f:selectItems value="#{challengeSetBean.availableQuestions}" />
</p:selectOneMenu>
<p:inputText value="#{cs.question}" id="customQuestion" rendered="#{cs.editMode} && #{cs.custom}" style="width:300px;"/>
<p:inputText value="#{cs.answer}" id="answer" rendered="#{cs.editMode}"/>
</p:panel>
</p:column>
<p:column style="width:28px;font-size:9px;padding-left:7px;padding-bottom:7px;padding-top:7px;">
<p:commandButton value="#{msg.updateAccount_reset}" action="#{challengeSetBean.editAnswer('alpha')}" immediate="true" rendered="#{!cs.editMode}" update="alphaTable" >
</p:commandButton>
<p:commandButton value="#{msg.common_save}" action="#{challengeSetBean.saveAnswers('alpha')}" rendered="#{cs.editMode}" immediate="true" update="alphaTable"/>
<p:commandButton value="#{msg.cancel}" action="#{challengeSetBean.cancelAnswer('alpha')}" rendered="#{cs.editMode}" ajax="true" immediate="true" update="alphaTable"/>
<p:commandButton value="#{msg.common_delete}" action="#{challengeSetBean.deleteAnswer('alpha')}" rendered="#{!cs.editMode}" immediate="true" update="alphaTable"/>
</p:column>
</p:dataTable>
豆:
QuestionAnswer selected = (QuestionAnswer) challengeSetTable.getRowData();
System.out.println(""+selected.getQuestion());