2
我试图在我的应用程序中为答案制作一个输入表单,并从四个“空”答案开始,这些答案是视图循环并为其输入字段。我有一个添加答案按钮,我将一个问题添加到答案数组中,然后视图再次呈现答案,但是现在增加了一个输入字段。 backing bean是viewscoped。但是,如果我提交表单而不按下添加答案按钮,它一切正常。数据保存在数据库中。但是,如果我在填充四个答案后添加答案,则最后一个答案不会从输入字段获取数据(answer.description)。如果我先按添加答案(不填写任何输入字段),则根本不会捕获字段中的数据,所有5个都不会留空,因此没有数据保存在数据库中。在UI中动态添加的输入字段:表单提交时不处理
我有这样的形式:
<ui:repeat var="answer" value="#{bean.answers}">
<div class="field">
<h:outputLabel for="answerAlternative-#{answer.serialNumber}"
value="Svaralternativ #{answer.serialNumber}" />
<h:inputText id="answerAlternative-#{answer.serialNumber}"
value="#{answer.description}" size="40" />
</div>
</ui:repeat>
这是创建一个新的输入字段的方法:
public String addAnswer() {
if (answers.size() + 1 < 6) {
Answer answer = new Answer();
answer.setSerialNumber(answerSerialNumber + "");
answerSerialNumber++;
answers.add(answer);
}
return null;
}
用于初始化的答案阵列有四个空的输入字段:
@PostConstruct
public void initBean() {
answers = new ArrayList<Answer>();
for (int i = 0; i < 4; i++) {
addAnswer();
}
}
什么是JSF impl/version?莫哈拉对''长期存在严重问题,并且保存了部分状态。他们中的大多数应该在当前的2.1.4中修复。 MyFaces不应该有这样的问题,你也可以尝试一下。您也可以用''来尝试,而不是排除其中一个,在这种情况下不应该有任何问题。 –
BalusC
我可以在哪里查看我使用的版本? – LuckyLuke
它通常打印在webapp启动日志中。检查你的IDE控制台。对于Mojarra而言,它看起来像是INFO:初始化Mojarra 2.1.4(SNAPSHOT 20111107)用于上下文'/ playground''。 – BalusC