有没有办法在运行时而不是设计时指定 EL 中使用的托管 bean?例如。actionListener="#{myBean.method}"
这样myBean
根据调用代码的 JSF 页面,part 可以有不同的值(条件是使用的任何对象代替 myBean 都派生自实现“方法”的公共父对象)。
如果您事先知道 bean 范围并且已经预先创建了 bean,那么可以使用以下语法:
actionListener="#{requestScope[beanName].method}"
where #{requestScope}
表示请求范围映射(相同的映射可用于视图、会话和应用程序范围)并且#{beanName}
表示保存托管 bean 名称的变量。
如果您事先不知道 bean 范围和/或未事先创建 bean,那么您需要创建一个实用程序 EL 函数来执行以下操作:Application#evaluateExpressionGet(),这样它就可以像下面这样使用:
actionListener="#{util:getBean(beanName).method}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)