JSF:ui:include不适用于ui:define
我有一组edit.xhtml页面,每个页面都有一个相关的托管beanJSF:ui:include不适用于ui:define,jsf,jsf-2,jsf-2.2,Jsf,Jsf 2,Jsf 2.2,我有一组edit.xhtml页面,每个页面都有一个相关的托管beanmanager,一个通用的定义子集,以及一个不同定义的子集。我想这样封装公共定义,但失败了(未传入managerui:param): 从典型的edit.xtml: <ui:composition template="/template.xhtml"> <ui:include src="/include/define_common_edit.xhtml"> <
manager
,一个通用的定义子集,以及一个不同定义的子集。我想这样封装公共定义,但失败了(未传入manager
ui:param):
从典型的edit.xtml
:
<ui:composition template="/template.xhtml">
<ui:include src="/include/define_common_edit.xhtml">
<ui:param name="manager" value="#{quantityManager}"/>
</ui:include>
<ui:define name="body">
// specific part
问:在这种情况下,ui:include
为什么不处理ui:define
(即为什么ui:include
在解释ui:define
之前不“先工作”
一个可接受的答案不会简单地解释ui:include
和ui:define
是如何工作的,我已经知道了。答案必须是JSF规范或类似的权威描述(我已经检查了JSF规范和JavaEE教程,但还没有找到涵盖上述情况的确切描述)
欢迎提出建议,说明如何封装上述非变化的ui:define
元素组以促进编码
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:util="http://xmlns.jcp.org/jsf/composite/util">
<ui:define name="htmltitle">
<util:edit_htmltitle manager="#{manager}"/>
</ui:define>
<ui:define name="title">
<util:edit_title manager="#{manager}"/>
</ui:define>
<ui:define name="actions">
<util:edit_actions manager="#{manager}"/>
</ui:define>
</ui:composition>