2012-07-10 53 views
2

我在其他帖子找不到解決方案,所以這是我的問題。 (事先,我在JBoss 7.1 AS上使用帶有Mojarra實現和Primefaces 3.2的JSF 2)在編譯時你不知道在運行時添加JSF組件

我正在構建一個應該在運行時動態生成的搜索掩碼。我從另一篇文章中知道我應該爲此使用一個dataTable。那是我會做的。

但是搜索掩碼由3部分組成,搜索標準(例如姓名,生日,...),操作符(不大於,在範圍內......)和操作數(用戶將作爲搜索輸入提供的內容)。

我的目標是動態生成search-mask,但輸入字段的類型取決於用戶選擇了哪個標準+運算符。

因此,如果用戶從下拉框中選擇了標準:「name」和operator:「is not」,那麼操作數的輸入字段應該只是一個簡單的p:inputText。

但是,如果用戶選擇標準「生日」和運營商:「之前」,那麼輸入字段應該是日期選擇器,如p:日曆。

我的想法是使用p:dataTable作爲「SearchRow」對象列表,其中每個對象都有一個標準和操作數數組,以在h:selectOneMenu中使用它們。

然後,我將一個valueChangeListener添加到selectMenues,然後在那裏計算並創建我需要的UIComponent類型作爲inputfield。

但我不知道如何將該UICOmponent添加爲dataTable中的第3列。

那麼,我的想法有什麼好處,是否有辦法解決我的問題?

在此先感謝!

回答

1

與上述問題here相同的解決方案。來自@BalusC的article很好地解釋瞭如何從bean中添加組件。