JSF2:在运行时构建 JSF2 视图(整个组件树)
Posted
技术标签:
【中文标题】JSF2:在运行时构建 JSF2 视图(整个组件树)【英文标题】:JSF2: Building JSF2 views (whole component trees) at runtime 【发布时间】:2011-07-31 14:39:02 【问题描述】:目前我正在尝试 JSF 2.0,并且仍在学习更高级的功能。 当必须处理 预定义 视图(固定组件树)时,JSF2 很舒服,这些视图的小部件在编译时是完全已知的——当然,除了重复数据列表/表格条目和轻微的动态修改之外通过 DataTable 的“技巧”(正如我在这里读到的,尤其是在 JSF2, can I add JSF components dynamically? 和 How to create dynamic JSF 1.2 form fields 下)。
现在我想知道完全动态的 JSF2 组件树的实现,其中 Web 用户对于每个给定的内容类型(例如“Person”、“PersonList”以及“PersonalManagementPanel”)可以从列表中选择一个内容类型兼容的小部件(=JSF 自定义组件)。 因此,该用户将始终看到使用他/她首选的“PersonalManagerPanel”呈现的“个人经理页面”,而后者又会使用用户的首选变体呈现其嵌套组件(“Person”、“PersonList”)。
显然,目标是在运行时获得一个选择性可配置/可定制的 JSF 页面。
这个场景可以在 JSF2 中实现吗? -- 这怎么可能?
是否有更适合此要求的 Java 技术? -- 我正在考虑的一种可能的替代方法是 XML 加 XSLT。
非常感谢您的帮助和建议。
最好的问候 马丁
【问题讨论】:
【参考方案1】:你可以这样使用:
<ui:include src="#bean.template" />
或者如果你想要更复杂的组件,你应该看看PreRenderViewEvent。
请注意,这两种解决方案都存在问题。
http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-770 http://java.net/jira/browse/JAVASERVERFACES-1708 http://java.net/jira/browse/JAVASERVERFACES-2041【讨论】:
以上是关于JSF2:在运行时构建 JSF2 视图(整个组件树)的主要内容,如果未能解决你的问题,请参考以下文章