在运行时集成外部JSF视图



问题描述

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

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

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

提前感谢!

对于JSF组件,您可以通过编程方式创建它们。这里的答案是:如何创建动态JSF表单字段。注意,JSF 2.x的概念没有什么不同;您需要在视图构建期间运行它。父级上的<f:event type="postAddToView">是理想的钩子。或者,可以在父级的binding属性的getter中惰性地执行,但是这会破坏视图范围,并且bean肯定需要是请求范围的。

至于JSF视图,您需要创建一个自定义的ResourceResolver。具体的例子可以在这些答案中找到,其中包括从外部文件系统或数据库获取Facelets模板/文件

最新更新