我只有一个想法,即实现获得用户的答案。我决定使用List<String> questionsWithAnswers
并放入此列表对,例如“1_1”、“1_2”、“1_3”、“2_1”。像这样的东西。但即使有这个想法,我也有问题。同样重要的是,我将使用网络服务(例如,使用地图作为保存对问题和答案的结构是一个限制)。
********我的豆********
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}" />
对于带有 answerId 的连接 questionId,我使用 concat。我在 JSF/JSP EL 和 Javascript 的连接字符串中找到了这个
但我无法entry.key.questionId
在里面获得价值itemValue="#{fnc:concat(ans.answer.answerId, entry.key.questionId)}"
我不明白为什么。
我在哪里可以犯错?我想问一些关于更多逻辑和简单决策类似问题的来源。谢谢