ui:param与bean名称的优先顺序

时间:2014-10-01 03:44:38

标签: jsf el facelets

el上下文中哪些优先级更高?

实施例

两个托管bean,一个用于admin,另一个用于客户端:

管理员:@ManagedBean(name = "fooEditBean")
客户:@ManagedBean(name = "clientFooEditBean")

包含文件incl_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>

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

可以简单地使用adminFooEditBean或不同的参数名称。

1 个答案:

答案 0 :(得分:1)

稍后放在EL范围中的那个优先。所以它基本上是先进先出。

在这种情况下,稍后会放置<ui:param>值,因此它将在<ui:include>的上下文中运行的代码中具有优先权。

但请注意,较旧的JSF impl版本可能在代码离开设置新EL变量的上下文后“重置”EL​​作用域时出现问题,在此特定示例中会导致代码在< / em> <ui:include>仍然获得<ui:param>值。如果您遇到此问题,只需升级JSF impl即可。