2011-11-26 56 views
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(); 
    } 
} 
+0

什么是JSF impl/version?莫哈拉对''长期存在严重问题,并且保存了部分状态。他们中的大多数应该在当前的2.1.4中修复。 MyFaces不应该有这样的问题,你也可以尝试一下。您也可以用''来尝试,而不是排除其中一个,在这种情况下不应该有任何问题。 – BalusC

+0

我可以在哪里查看我使用的版本? – LuckyLuke

+0

它通常打印在webapp启动日志中。检查你的IDE控制台。对于Mojarra而言,它看起来像是INFO:初始化Mojarra 2.1.4(SNAPSHOT 20111107)用于上下文'/ playground''。 – BalusC

回答

5

这看起来匹配在Mojarra <ui:repeat>目前的问题。这是在Mojarra的totally broken

你已经基本上2种选择:

相关问题