EL 会自动转换/转换类型吗? ${a.name} 实际上是如何工作的?
我有一个声明为 Object a
类型的变量,它实际上引用了 A
类型的实例。
在 EL 中,我可以直接使用以下表达式来打印 A
类型的 name
属性:
${a.name}
它是如何工作的?
I have a variable declared as type Object a
which actually refers an instance of type A
.
In EL, I can directly use the following expression to print the name
property of type A
:
${a.name}
How does it work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
EL 在底层使用 反射,通常通过
javax.beans.Introspector
API。这就是它在
${a.name}
上的大致作用。它不会以任何方式转换/转换类型。
另请参阅:
EL uses reflection under the hoods, usually via
javax.beans.Introspector
API.This is what it roughly does under the covers on
${a.name}
.It does not convert/cast the type in any way.
See also:
这是因为
name
是对象a
的属性,并且该对象可能也是一个 JavaBean(不要与 Enterprise JavaBean 混淆)。请参阅此处了解表达式语言文档和此处查看简短教程。
It's because
name
is a property of the objecta
, and probably the object is also a JavaBean (not to be confused with Enterprise JavaBean).See here for Expression Language Documentation and here for a short tutorial.