gpt4 book ai didi

jsf - 在字符串值中评估 EL 表达式

转载 作者:行者123 更新时间:2023-12-04 02:51:04 24 4
gpt4 key购买 nike

是否可以评估保存在 String 值中的 el 表达式,例如在托管 bean 变量中?

简而言之:双重评估是否可能?

@ManagedBean(name = "bean")
@ViewScoped
public class Bean
{
private final String name = "bar";
private final String nameEl = "foo #{bean.name} foo #{bean.name}";

public String getName()
{
return this.name;
}

public String getNameEl()
{
return this.nameEl;
}
}

<h:outputText value="#{bean.nameEl}" escape="false"/>

输出是:foo #{bean.name} foo #{bean.name}

并且希望的输出应该是:foo bar foo bar

想法:

el 函数可以解决这个问题。

最佳答案

您可以使用 Application#evaluateExpressionGet()将字符串作为 EL 表达式求值并获得结果。

FacesContext context = FacesContext.getCurrentInstance();
Object result = context.getApplication().evaluateExpressionGet(context, nameEL, Object.class);
// ...

在 OmniFaces 中,这也可以在 Faces 中找到类。

Object result = Faces.evaluateExpressionGet(nameEL);
// ...

关于jsf - 在字符串值中评估 EL 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17712098/

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