gpt4 book ai didi

java - 使用 bean 创建动态 selectOneRadion

转载 作者:太空宇宙 更新时间:2023-11-04 15:13:13 26 4
gpt4 key购买 nike

我需要构建一个包含问题的测验应用程序(每个问题有 2 个可能的答案),我在数据库中存储了一些问题。选择答案并单击“下一步”后,您将看到下一个问题。我有一个代表每个问题的 bean,它称为 Item,并具有以下属性:问题,ansA,ansB;我有一颗 bean :

@ManagedBean
@ViewScoped
public class Bean {

private List<Item> items = new ArrayList<Item>();
private List<Item> helper = new ArrayList<Item>();
private String myValue;
int indexHelp = 0;

public String next() {
items.clear();
items.add(helper.get(indexHelp));
indexHelp++;

System.out.println("chose: " + myValue);

return "ok";
}

列表助手已与数据库中的问题一起存储

jsf 文件:

<h:form>
<h:dataTable value="#{bean.items}" var="item">
<h:selectOneRadio value="#{bean.myValue}">
<h:column>
<f:selectItem itemLabel="#{item.question}" />
</h:column>
<h:column>
<f:selectItem itemValue="1" itemLabel="#{item.ansA}" />
</h:column>
<h:column>
<f:selectItem itemValue="2" itemLabel="#{item.ansB}" />
</h:column>

</h:selectOneRadio>
</h:dataTable>
<h:commandButton value="Next" action="#{bean.next}" />
</h:form>

问题是当我运行该项目时,它不显示单选按钮、问题或答案。谢谢!!

最佳答案

以下内容符合您的描述:

public class Item {
String question;
String chosen;
String ansA;
String ansB;
}

@ManagedBean
@ViewScoped
public AnswerBean implements Serializable {
private List<Item> alreadyAnswered = new ArrayList<>();
private Item nextQuestion;

@PostConstruct
public void retrieveNextQuestion() {
// pull "next" question from DB and assign it to nextQuestion
}

public void save() {
alreadyAnswered.add(nextQuestion);
retrieveNextQuestion();
}
}

您的 JSF 页面如下所示:

<h:form>
<h:outputText value="#{answerBean.nextQuestion.question}" />
<h:selectOneRadio value="#{answerBean.nextQuestion.chosen}">
<f:selectItem itemValue="1" itemLabel"#{answerBean.nextQuestion.ansA}" />
<f:selectItem itemValue="2" itemLabel"#{answerBean.nextQuestion.ansB}" />
</h:selectOneRadio>
<h:commandButton action="#{answerBean.save}" value="Next" />
</h:form>

您可能想添加一个“评估”按钮,当没有问题或其他问题时显示该按钮(因为您需要对alreadyAnswered问题列表一些事情)。

关于java - 使用 bean 创建动态 selectOneRadion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21113639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com