在运行时添加您在编译期间不知道的JSF组件

时间:2012-07-10 11:02:39

标签: dynamic jsf-2 components

我无法在其他帖子中找到解决方案,所以这是我的问题。 (事先,我在JBoss 7.1 AS上使用带有Mojarra实现的JSF 2和Primefaces 3.2)

我正在构建一个应该在运行时动态生成的搜索掩码。我从另一篇文章中知道我应该使用dataTable。这就是我要做的。

但搜索掩码由3部分组成,搜索条件(例如名称,生日,...),运算符(是,不是,大于,在范围内......)和操作数(用户将作为搜索输入提供什么。

我的目标是动态生成搜索掩码,但输入字段的类型取决于用户选择的标准+运算符。

因此,如果用户选择了标准:" name"和操作员:"不是"从下拉框中,操作数的输入字段应该只是一个简单的p:inputText。

但是如果用户选择标准"生日"和运算符:"在"之前,输入字段应该是像p:calendar一样的日期选择器。

我的想法是使用p:dataTable作为" SearchRow"的列表。每个对象都有一系列标准和操作数的对象,以便在h:selectOneMenu中使用它们。

然后我将valueChangeListener添加到selectMenues中,并在那里我计算并创建我需要的正确类型的UIComponent作为输入域。

但我不知道如何将该UICOmponent添加为dataTable中的第3列。

我的想法是否有任何好处,是否有办法解决我的问题?

提前致谢!

1 个答案:

答案 0 :(得分:1)

与所述问题here相同的解决方案。来自@BalusC的article非常好地解释了如何从bean中添加组件。