Java 在运行时集成外部JSF视图

Java 在运行时集成外部JSF视图,java,jsf,jsf-2,Java,Jsf,Jsf 2,问题描述 我使用带有自建JSF UI的工作流引擎。引擎中的某些进程使用所谓的用户任务。这些任务在我的JSF前端中呈现,包含中小型表单,用户必须填写这些表单。工作流前端应该是完全通用的-它不应该知道处理了哪些任务或哪些类型的任务。因此,我不想在JSF应用程序中定义这些任务表单。表单应该沿着相关流程“存在”,因此在工作流引擎中。这一点很重要,因为否则每次更改应用于任何小表单时,都必须重新部署前端应用程序。 因此,我想从引擎中获取表单(基本上是一个.xhtml文件),并将其作为一个简单的JSF视图添加

问题描述

我使用带有自建JSF UI的工作流引擎。引擎中的某些进程使用所谓的用户任务。这些任务在我的JSF前端中呈现,包含中小型表单,用户必须填写这些表单。工作流前端应该是完全通用的-它不应该知道处理了哪些任务或哪些类型的任务。因此,我不想在JSF应用程序中定义这些任务表单。表单应该沿着相关流程“存在”,因此在工作流引擎中。这一点很重要,因为否则每次更改应用于任何小表单时,都必须重新部署前端应用程序。
因此,我想从引擎中获取表单(基本上是一个
.xhtml
文件),并将其作为一个简单的JSF视图添加到应用程序中。如果用户想要完成一项任务,那么应该提取并呈现相应的JSF表单

我希望在运行时将JSF组件(或整个视图)集成到我的应用程序中,因此在构建或启动时完全未知。

我怎样才能做到这一点?这可能吗


提前谢谢

至于JSF组件,您完全可以通过编程方式创建它们。答案如下:。注意,JSF2.x的概念没有什么不同。只有时机是正确的;您需要在视图生成期间运行它。父对象上的
是理想的钩子。或者,在父级的
binding
属性的getter中惰性地执行此操作,但是这会破坏视图范围,并且bean肯定需要在请求范围内


至于JSF视图,您需要创建一个自定义视图。具体的例子可以在中找到,除其他外

你不想用
..
渲染这两个元素吗
@Daniel可能我的问题中没有明确描述。我不希望有条件地渲染组件。我希望在运行时添加JSF元素,因此在编译或启动时完全未知。这两个元素只是一个例子。@fnst有时,最好的泛型问题是具体的。也许如果您向我们展示了您特定问题的UI原型,那么我们可以为您提供如何使用JSF实现这一点的想法。@fnst start@elias我重写了问题描述并添加了一些背景信息。很难显示代码示例,因为它实际上是一个通用问题。我不想添加一个特定的组件——如果可能的话,它可以添加每个JSF组件。谢谢你的提示!