2011-11-26 57 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種選擇:

相關問題