ボタンを押したときに値String
をList<String>
内部に入れると、ui:repeatの最後の要素のレコードだけが含まれていることがわかります。<ui:repeat>
List<String>
<ui:repeat value="#{util:toList(test.mapQestionsWithAnswers)}" var="entry">
<h:inputHidden value="#{entry.key.questionId}" />
<h:outputText value="#{entry.key.question}"
rendered="#{not empty entry.value}" />
<p:selectManyCheckbox value="#{test.questionAnswerList}"
layout="pageDirection">
<f:selectItems value="#{entry.value}" var="ans"
itemValue="#{entry.key.questionId} #{ans.answer.answerId}"
itemLabel="${ans.answer.answer}" />
</p:selectManyCheckbox>
</ui:repeat>
util:toList
Baluscanswerからのアイデアjsfでハッシュマップ値を表示する方法は?
//更新 マップを使用せずにこのコードを書き直しました
<ui:repeat value="${test.questionList}" var="question">
<h:outputText value="#{question.question}"
rendered="#{not empty question}" />
<p:selectManyCheckbox value="#{test.questionAnswerList}"
layout="pageDirection">
<f:selectItems value="#{question.questionAnswers}" var="ans"
itemValue="#{ans.questionAnswerIdentifer.questionId} #{ans.questionAnswerIdentifer.answerId}"
itemLabel="#{ans.answer.answer}" />
</p:selectManyCheckbox>
</ui:repeat>
List<String>
しかし、それは私がの最後の質問に対する質問の答えをペアで得ることができるのを助けません<ui:repeat/>
。すべての反復の後にquestionAnswerListが空になるようです
//わかりました、いくつかの記事を読みましたui:repeat内のPrimefaces ManyCheckboxは、最後のループに対してのみsetterメソッドを呼び出します
そして、マップマップを使用することにしました>
しかし、この部分では、エラーClassCastException
文字列をリストにキャストできません
public List<String> getQuestionAnswerList() {
// return questionAnswerList;
List<String> selectedQuestionAnswer = new ArrayList<String>();
if (!selectedItems.isEmpty()) {
Set<Long> idsSet = selectedItems.keySet();
for(Long questionId : idsSet){
List<String> questionAnswerPair = selectedItems.get(questionId);
selectedQuestionAnswer.addAll(questionAnswerPair);
}
}
return selectedQuestionAnswer;
}
<p:selectManyCheckbox value="#{test.selectedItems[question.questionId]}"
layout="pageDirection">
<f:selectItems value="#{question.questionAnswers}" var="ans"
itemValue="#{ans.questionAnswerIdentifer.questionId} #{ans.questionAnswerIdentifer.answerId}"
itemLabel="#{ans.answer.answer}" />
</p:selectManyCheckbox>
選択したすべての値を取得するにはどうすればよいList<String>
ですか?