JSF何时评估EL表达式

时间:2014-05-05 03:36:40

标签: jsf jsf-2 el

对于延迟的EL表达式,JSF将在单个请求期间多次评估它。我已经检查了JavaEE教程,它说:

  

对于回发请求,JavaServer Faces实现将进行评估   在生命周期的不同阶段的表达,在此期间   值从请求中检索,验证并传播到   客户豆。

那么它是否意味着JSF将在单个请求中评估EL表达式3次?这可能是潜在的性能问题。

例如,我们可以使用#{userList.resultList}表达式检索实体集合。 JSF对它进行了3次评估,可以说,在一次请求中,数据库将被查询3次。如何避免这种冗余的数据库查询?

谢谢!

1 个答案:

答案 0 :(得分:2)

EL应该使用简单的getter / setter ..不要将业务逻辑放在getter中,这样userList.resultList应该只是 - 在初始化时返回设置到bean中的resultList。

请参阅:Why JSF calls getters multiple times

我可以剪切并粘贴并继续关于此,但在BalusC的上述帖子中,所有内容都得到了非常好的解释