2012-06-18 32 views
3

是否有人知道關於Primefaces Extension的Dynaform究竟是什麼動態的。關於the dynamic form example似乎沒有什麼動態的。據我所知,這只是一個具有固定佈局和固定輸入組件的表單。不出我所料給出的聲明the front page什麼是關於Primefaces Extension的Dynaform的動態

通常情況下,我們可以建立由H很簡單的一種形式:panelGrid的奧德 號碼:panelGrid中,如果元素的行/列,位置計數, 等已知。靜態表單的確如此。但是如果在運行時動態地描述表格,則不可能使用h:panelGrid或p:panelGrid 。例如。如果整個表單的定義放在一個 數據庫或XML文件中。

DynaForm使建立一個動態表單與標籤,輸入, 選擇和其他模型的元素。其他增強功能可擴展 擴展視圖區域(網格),autoSubmit功能,窗口小部件的客戶端API,各個方面。支持方面

回答

3

其中一位Primefaces Extension作者在他的博客中更詳細地解釋了它:http://ovaraksin.blogspot.hu/2012/06/dynamic-forms-jsf-world-was-long.html

最重要的部分是:

子標籤PE:dynaFormControl匹配在Java中創建的 「類型」 屬性控制。這通常是「一對多」關係。

您沒有在xhtml頁面中定義佈局,只是在java代碼中創建了一些自定義組件。

basicUsage例子中,你可以看到這一點:

<pe:dynaFormControl type="calendar" for="cal"> 
    <p:calendar id="cal" value="#{data.value}" /> 
</pe:dynaFormControl> 

這將創建一個日曆控件類型,即使用p:calendar實現。你可以參考你的支持豆:

DynaFormControl control = row.addControl(property, "calendar", 1, 1); 
4

我這個組件的創建者。你爲什麼認爲佈局是固定的?它不是固定的,你用Java定義佈局。通過「type」屬性在Java控件/標籤和表單元素中定義之間進行映射。當然,所有可能的表單元素都應該放在頁面上,因爲在XHTML中更容易將它們描述爲標籤,而不是用Java創建。想象一下你會用SelectItems,Ajax行爲,Action/ActionListener,以及很多其他屬性在Java中創建一個SelectOneMenu ...更容易指定一個1-N映射,就像在p:treeNode和TreeNode中一樣。這裏是一樣的 - 你有pe:dynaFormControl和DynaFormControl。請探索所有的代碼示例。

謝謝。奧列格。

P.S. My last blog post是關於這個組件。

+0

感謝您的回答。我誤解了這個例子。看起來,表單的佈局和xhtml文件之間存在一對一的關係。我將再次看看這些例子 - 根據這些新的信息。謝謝! – auser

相關問題