允许执行此操作的框架实用程序/模式/语言是什么

What is the framework's utility / pattern / language that permits to do this

我使用这个功能已经有一段时间了,但不知道为什么我可以使用它: 在 jsp 页面中,为什么我可以在没有 'get' 部分的情况下调用 Dto 的 getter 方法?

例如,如果我的 Dto class PersonDto 有一个名为 getName() 的方法,在我的 jsp 中我可以这样做:

 ${person.name}

而不是这个:

 ${person.getName()}

是Spring 框架、MVC 模式、JSTL 还是它们的组合的特征?我在哪里可以研究这个论点?

这一切都可以追溯到 JavaBeans 规范,该规范要求对于名为 foo 的字段,必须有 setter setFoo() 和 getter getFoo()(或 isFoo() 也允许用于布尔字段)。

这允许框架、模板语言和其他工具使用简化的语法,因为众所周知 bar.foo 意味着 bar.getFoo()

Is a characteristic of Spring framework, of MVC pattern, JSTL or a combination of them ?

None 个。它被称为EL (Expression Language)

And where can I study this argument?

our EL wiki page 开始。


请注意,在 EL 2.2 版之前,${person.getName()} 语法是非法的。因此肯定不是 ${person.name}${person.getName()}.

更新

另请参阅:

  • Difference between JSP EL, JSF EL and Unified EL
  • Invoke direct methods or methods with arguments / variables / parameters in EL