ユーザーの回答を得ることを実現するという考えは1つだけです。私は使用を決定しList<String> questionsWithAnswers
、「1_1」、「1_2」、「1_3」、「2_1」のようなこのリストのペアを入れます。このようなもの。しかし、この考えでも私には問題があります。また、Webサービスを使用することも重要です(たとえば、質問と回答のペアを保存するための構造としてマップを使用する場合の制約です)。
********私の豆********
public class TestBean implements Serializable{
private static final long serialVersionUID = 1L;
private List<Test> testList;
private List<Answer> answerList;
private List<Subject> subjectList;
private Map<Question, List<QuestionAnswer>> mapQestionsWithAnswers;
private List<String> questionAnswerList;
private Long subjectId = 0L;
private Test test;
//...
}
getTest.xhtml
<c:forEach items="#{test.testBean.mapQestionsWithAnswers}"
var="entry">
<h:inputHidden value="#{entry.key.questionId}" />
<h:outputText value="#{entry.key.question}" rendered="#{not empty entry.value}"/>
<h:selectManyCheckbox value="#{test.testBean.questionAnswerList}" layout="pageDirection">
<f:selectItems value="#{entry.value}" var="ans"
itemValue="#{fnc:concat(ans.answer.answerId, entry.key.questionId)}"
itemLabel="${ans.answer.answer}" />
</h:selectManyCheckbox>
</c:forEach>
<h:commandButton value="#{msgs['page.content.passtest']}" action="#{test.passTest}" />
質問IDとanswerIdの連結には、concatを使用します。これは、JSF /JSPELとJavascriptの文字列の連結で見つかります
entry.key.questionId
しかし、私は内部の価値を得ることができませんitemValue="#{fnc:concat(ans.answer.answerId, entry.key.questionId)}"
理由がわかりません。
どこで間違いを犯すことができますか?そして、私はより多くの論理と単純な決定の同様の問題についていくつかの情報源に尋ねたいと思います。ありがとう