Jsf ui的优先级:param与bean名称

Jsf ui的优先级:param与bean名称,jsf,el,facelets,Jsf,El,Facelets,在el上下文中,什么具有更高的优先级 例子 两个托管bean一个用于管理员,一个用于客户端: 管理员:@ManagedBean(name=“fooEditBean”) 客户端:@ManagedBean(name=“clientFooEditBean”) 包含文件包含fooEdit.xhtml: #{fooEditBean.bar} <ui:include src="incl_fooEdit.xhtml"> <ui:param name="fooEditBean" va

在el上下文中,什么具有更高的优先级

例子 两个托管bean一个用于管理员,一个用于客户端:

管理员:
@ManagedBean(name=“fooEditBean”)

客户端:
@ManagedBean(name=“clientFooEditBean”)

包含文件
包含fooEdit.xhtml

#{fooEditBean.bar}
<ui:include src="incl_fooEdit.xhtml">
    <ui:param name="fooEditBean" value="#{fooEditBean}/>
</ui:include>
<ui:include src="incl_fooEdit.xhtml">
    <ui:param name="fooEditBean" value="#{clientFooEditBean}/>
</ui:include>
站点管理员:

#{fooEditBean.bar}
<ui:include src="incl_fooEdit.xhtml">
    <ui:param name="fooEditBean" value="#{fooEditBean}/>
</ui:include>
<ui:include src="incl_fooEdit.xhtml">
    <ui:param name="fooEditBean" value="#{clientFooEditBean}/>
</ui:include>

站点客户端将使用哪个托管bean


可以简单地使用
adminFooEditBean
或其他参数名。

后面放在EL范围中的参数名具有优先权。所以基本上是后进先出

在这种情况下,
值放在后面,因此它在
上下文中运行的代码中具有优先权

但是请注意,较旧的JSF impl版本可能在代码离开设置新EL变量的上下文后“重置”EL作用域时出现问题,在这个特定示例中,这将导致
之后的代码仍然获得
值。如果您面临这个问题,只需升级JSF impl就可以了