2012-07-10 52 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中添加组件。