2013-10-09 19 views
0

我在我的支持bean中有一個列表。我想把它呈現在一張桌子上。我希望表格有兩行 - 左側是列表中的值,右側是inputBoxes。這是最簡單的部分。這裏是我的代碼:jsf tabledata動態輸入文本

<div class="table"> 
       <h:dataTable id="korekty" styleClass="table table-hover" 
       value="#{searchBean.listX}" var="v"> 
        <h:column> 
         <f:facet name="header">XXX</f:facet> 
         #{v.string} 
        </h:column> 
        <h:column> 
         <f:facet name="header">YYY</f:facet> 
         <h:inputText styleClass="form-control"> 
         </h:inputText> 
        </h:column> 
       </h:dataTable> 
      </div> 

我的問題的困難部分是:在這些inputtext用戶可能會把一些數字。然後點擊SUBMIT按鈕後,我想創建一個列表/地圖/任何輸入值。我怎樣才能做到這一點?感謝您的幫助

回答

2

首先,準備一個數組,或列表,包含給定的數據佔位符和你們已經得到了清單:

List<String> initialData = ...;//initial data of n size 
String[] submittedData = new String[initialData.size()];//array of the same size 

然後,<h:dataTable>組件綁定到視圖訪問迭代的當前行索引。這樣,您就可以通過綁定輸入元素的值在數組/列表中的相應對象完成自己的工作:

<h:dataTable binding="#{table}" ... > 
    <h:column> 
     <f:facet name="header">YYY</f:facet> 
     <h:inputText value="#{searchBean.submittedData[table.rowIndex]}" ... /> 
    </h:column> 
</h:dataTable> 
+0

我會馬上嘗試 –

+0

我得到這樣的錯誤:'/secure/add_korekta.xhtml @ 63,88 value =「#{searchBean.submittedData [table.rowIndex]}」:null'。可能是什麼問題?我完全按照你的建議做了。 –

+0

好的 - 我把initializationData的initialData和initialData初始化一起移動到了@PostConstruct,然後它就起作用了。謝謝 –