gpt4 book ai didi

jsf - jsf中#{expr}和${expr}有什么区别?是否有我们应该更喜欢 ${expr} 的情况?

转载 作者:行者123 更新时间:2023-12-03 23:02:00 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Difference between JSP EL, JSF EL and Unified EL [closed]

(2 个回答)


5年前关闭。




前段时间我读过关于“Core JSF”的区别,但现在我找不到那个地方。

尽管如此,我不记得有关于我们应该在 jsf 中使用 ${expr} 的情况的词。所以我只是好奇有什么区别(在栗子中)以及是否有在 JSF 应用程序中使用 ${expr} 的情况?

最佳答案

用清晰的语言总结:${expression}只有获取 , 而 #{expression}两者都可以获取 .这是因为 ${expression}仅评估一次(立即),而 #{expression}对每次访问进行评估(延迟)。

在 JSP 2.0 或 Facelets 1.x 上的 JSF 中,当您将这样的内容作为页面的第一个表达式时

${bean.property}

哪里 bean是一个请求范围的托管 bean,你什么也看不到。但如果 bean是 session 范围的托管 bean 并且之前已经创建,然后您将看到正在打印的属性值。如果请求范围的托管 bean 之前由 #{bean.xxx} 创建,这也适用。在同一页面中。

如果您改为作为页面的第一个表达式
#{bean.property}

然后 EL 将测试是否 bean为空,如果是,则为 (创建)一个新的。如果在 bean 构造期间设置了属性,那么您将看到此表达式显示的属性。

这一切都是强制性的 JSF UIInput 组件,例如 <h:inputText> 上类。当您提交表单时, #{expression} bean 中的值。

关于jsf - jsf中#{expr}和${expr}有什么区别?是否有我们应该更喜欢 ${expr} 的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1847751/

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