2012-05-13 20 views
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>` 

回答

1

仅次于#{editQuestion}的bean(后)施工期间的Answer一个新的实例添加到后面#{editQuestion.answerData}列表。

E.g.

private List<Answer> answerData; 

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

注意,豆需要是为了保持在同一视图跨越提交正确的数据@ViewScoped:在postconstruct期间。

相关问题