0

テーブルがあり、プログラムを実行するたびにデフォルトで空白行が 1 行表示されるようにします。どうやってやるの?

<h:dataTable cellspacing="0" value="#{editQuestion.answersData}" var="answer">
                    <h:column>
                        <f:facet name="header">ID</f:facet>
                        <h:outputText value="#{answer.answer.id}" />
                    </h:column>

                    <h:column>
                        <f:facet name="header"><h:outputText value="#{i18n['admin.edit.rightanswer']}"  /></f:facet>
                        <h:selectBooleanCheckbox value="#{answer.answer.isRight}"/>
                    </h:column>

                    <h:column>
                        <f:facet name="header"><h:outputText value="#{i18n['admin.edit.answers']}"  /></f:facet>
                        <h:inputTextarea id="answer" rows="3" cols="40" value="#{answer.text}" required="true" label ="Answer">
                            <f:validateLength maximum="500"/>
                        </h:inputTextarea>
                        <div>
                           <h:message for="answer" style ="color:red"/>  
                        </div>

                    </h:column>

                    <h:column>
                        <h:commandButton image="/resources/imgs/#{editQuestion.buttonDelete}" immediate ="true" action="#{editQuestion.deleteAnswer(answer)}" disabled="#{!editQuestion.possibleToDelete}" alt="delete" title="#{i18n['img.delete']}">
                            <f:param name="id" value="#{editQuestion.id}"/>
                        </h:commandButton>
                    </h:column>
                </h:dataTable>`
4

1 に答える 1

1

bean behind の(ポスト)構築中にAnswer、リスト behindに新しいインスタンスを追加するだけです。#{editQuestion.answerData}#{editQuestion}

例えば、ポストコンストラクト中:

private List<Answer> answerData;

@PostConstruct
public void init() {
    answersData = new ArrayList<Answer>();
    answersData.add(new Answer());
}

@ViewScoped同じビューでの送信間で正しいデータを保持するには、Bean が必要であることに注意してください。

于 2012-05-13T11:54:17.527 に答える