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

发布于 2024-10-30 15:06:51 字数 867 浏览 1 评论 0原文

目前我正在尝试 JSF 2.0,并且仍在学习更高级的功能。
当必须处理预定义视图(固定组件树)时,JSF2 很舒服,这些视图的小部件在编译时是完全已知的——当然,重复数据列表/表条目和轻微动态修改除外通过数据表“技巧”的表单(正如我在这里读到的,特别是在 JSF2 下,我可以动态添加 JSF 组件吗?如何创建动态 JSF 1.2 表单字段)。

现在我想知道完全动态的 JSF2 组件树的实现,其中 Web 用户对于每个给定的内容类型(例如“Person”、“PersonList”以及“PersonalManagementPanel”)可以从内容列表中选择一个 -类型兼容的小部件(=JSF 自定义组件)。
因此,该用户将始终看到使用他/她喜欢的“PersonalManagerPanel”呈现的“个人管理器页面”,而“PersonalManagerPanel”又会使用用户喜欢的变体呈现其嵌套组件(“Person”、“PersonList”)。

显然,目标是在运行时获得选择性配置/可定制的 JSF 页面。

  1. 这个场景在 JSF2 中可以实现吗? -- 这是怎么做到的?

  2. 是否有更适合此要求的 Java 技术?
    -- 我正在考虑的一种可能的替代方案是 XML 加 XSLT。

非常感谢您的帮助和建议。

最好的问候
马丁

Currently I'm trying JSF 2.0 and still learning the more advanced features.
JSF2 is comfortable when having to deal with pre-defined views (fixed component trees) whose widgets are completely known at compile time -- of course with the exception of repeating data list/table entries and light dynamic modification of forms via the DataTable "trick" (as I read here, especially under JSF2, can I add JSF components dynamically? and How to create dynamic JSF 1.2 form fields).

Now I'm wondering about the realization of completely dynamic JSF2 component trees, where a web user, for each given content type (e.g. 'Person', 'PersonList' but also 'PersonalManagementPanel'), can choose one from a list of content-type compatible widgets (=JSF custom components).
As result, this user will always see the "Personal Manager Page" rendered with his/her prefered "PersonalManagerPanel", which in turn also renders its nested components ('Person', 'PersonList') with the user's preferred variants.

Obviously, the goal is to get a selectively configurable/customizable JSF Page -- at runtime.

  1. Is this scenario realizable in JSF2? -- How could this be done?

  2. Are there more appropriate Java technologies for this requierement?
    -- One possible alternative I'm thinking of is XML plus XSLT.

Thank you very much for your help and suggestions.

Best regards
Martin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱,才寂寞 2024-11-06 15:06:51

你可以使用这样的东西:

<ui:include src="#{bean.template}" />

或者如果你想要更复杂的组件,你应该看看 PreRenderViewEvent

请注意,这两种解决方案都存在问题。

You can use something like this:

<ui:include src="#{bean.template}" />

Or if you want more complicated components, you should take a look at the PreRenderViewEvent.

Note that there are issues with both solutions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文