我正在爲應用程序提供一個動態表單模塊,其中有一個隨機提交的問題列表爲答案。我遇到的問題是正在提交的Answer []數組與View中指定的順序不同。 (即視圖中的answer [0] .value作爲答案[3] .value進入控制器)。看起來,不是將視圖提交的數組視爲一個真正的數組,而是將它們放入一個無序的Set中,然後在轉到控制器之前轉換回Array。除了將數組視爲無序集並且不得不使用手動索引之外,還有什麼辦法可以解決這個問題。PlayFramework(1.2)。處理控制器中的對象數組
我控制器基本上是:
public static void process(Answer[] answers){ for(int i=0;i<answers.length;i++){ if(answers[i].question.required){ Validation.required("answers["+i+"].value,answers[i].value); } } if(Validation.hasErrors()){ //render the template }else{ //save } }
在我的模板
#{list items:questionSet.questions, as:"question"} ... <div class="#{if play.data.validation.Validation.hasError("anwsers["+question_index+'].value)}error#{/if}"> <input name="answers[${question_index}].question.id" value="${question.id}"/> <input name="answers[${question_index}].value" value="${answers[question_index].value}/> <div/> #{/list}
如果你使用'名單'來代替'回答[]數組'? –
2013-05-06 23:45:42