在运行时添加您在编译时不知道的 JSF 组件 [重复]

Posted

技术标签:

【中文标题】在运行时添加您在编译时不知道的 JSF 组件 [重复]【英文标题】:Add JSF components at runtime that you don't know during compile time [duplicate] 【发布时间】:2012-07-09 20:19:14 【问题描述】:

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

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

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

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

因此,如果用户从下拉框中选择标准:“名称”和运算符:“不是”,那么操作数的输入字段应该只是一个简单的 p:inputText。

但如果用户选择标准“生日”和运算符:“之前”,那么输入字段应该是日期选择器,如 p:calendar。

我的想法是使用 p:dataTable 作为“SearchRow”对象列表,其中每个对象都有一组条件和操作数,以便在 h:selectOneMenu 中使用它们。

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

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

那么我的想法有什么好处吗?有没有办法解决我的问题?

提前致谢!

【问题讨论】:

【参考方案1】:

与here 描述的问题相同的解决方案。 @BalusC 的 article 很好地解释了如何从 bean 添加组件。

【讨论】:

以上是关于在运行时添加您在编译时不知道的 JSF 组件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JSF2:在运行时构建 JSF2 视图(整个组件树)

JSF组件的动态值绑定

将新组件动态添加到 JSF 组件树时重复 id

JSF 组件渲染器中的 JSF 标记

在 Entity Framework 4.1 中,如何使用 SqlQuery 创建在编译时不知道查询详细信息的匿名对象

将 PrimeFaces 与 JSF 一起使用时 Shiro 重定向到错误的位置