JSF 模板和控制器调用

JSF templating and controller invocation

我是 JSF 的新手,我已经阅读了一些规范,但还有很多地方我不明白。

我加入了一个项目,该项目使用 JSF1.2 + Richfaces 3.3 + 一些允许使用参数调用方法的 EL。

我创建了一个可重复使用的模板 xhtml,并且我有一个 bean 包含模板构建和呈现自身所需的所有数据。该 bean 在控制器中被引用。

模板有 2 个参数,controller 和一个用于生成保存数据的 bean 的字符串值 feature。我做了一些非常丑陋的事情来调用将在控制器上生成 bean 的方法:

<h:outputText value="#{controller.loadFeature(feature)}" />

然后我使用控制器引用的 bean 来构建视图

<ui:include src="#{controller.myLoadedBean.widgetPath}">

我在构建时需要这个 bean,因为根据数据,我必须包含其他嵌套的 xhtml 模板。但我不知道如何管理它:

基本上,我需要的是能够在视图构建时使用模板参数调用控制器的方法。

我不知道如何做到这一点,或者根本不知道这是否可能。也许 JSF 中还有一些我不知道的其他机制允许调用控制器 before/when 正在构建视图。

任何帮助将不胜感激,谢谢

我的模板终于可以用了。我错了,JSF 和 Facelet 组件不应该调用方法来填充自己。

正确的MVC方式是先调用controller的一个方法,controller会构建view bean,然后只重定向到JSF view。