gpt4 book ai didi

java - EL中bean的动态选择

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:48 26 4
gpt4 key购买 nike

有没有办法在运行时而不是设计时指定在 EL 中使用的托管 bean?例如。actionListener="#{myBean.method}" 这样 myBean 部分可以有不同的值,具体取决于调用代码的 JSF 页面(条件是使用任何对象代替myBean 派生自实现“方法”的共同父级)。

最佳答案

如果您事先知道 bean 范围并且 bean 已经事先创建,那么是的,可以使用以下语法:

actionListener="#{requestScope[beanName].method}"

其中 #{requestScope} 表示请求范围映射(相同的映射可用于 View 、 session 和应用程序范围),#{beanName} 表示保存请求的变量托管 bean 名称。

如果您事先不知道 bean 作用域和/或没有事先创建 bean,那么您需要创建一个实用 EL 函数来执行 Application#evaluateExpressionGet() , 这样它就可以像下面这样使用:

actionListener="#{util:getBean(beanName).method}"

关于java - EL中bean的动态选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com