Java 用英语解释。艾尔工作得怎么样?

Java 用英语解释。艾尔工作得怎么样?,java,el,Java,El,为什么会这样 <td><c:forEach items="${profileForm.cityOptions}" var="city"> ....Some Code </c:forEach></td> ……一些代码 在我的profielForm中,我只有一个getCityOptions()方法,没有任何cityOptions。 它起作用了,但我需要一些解释 这就是EL的原理。它查找javabea

为什么会这样

    <td><c:forEach items="${profileForm.cityOptions}" var="city">
                ....Some Code
    </c:forEach></td>

……一些代码
在我的
profielForm
中,我只有一个
getCityOptions()
方法,没有任何
cityOptions

它起作用了,但我需要一些解释

这就是EL的原理。它查找javabean属性。bean属性是公共getter根据JavaBeans约定提供的一些信息。也可以使用JavaBean setter设置它,遵守JavaBeans约定:

public Foo getFoo();
public void setFoo(Foo foo);
public boolean isCool();
public void setCool(boolean cool);

EL不关心对象的场。这是私人的,封装的东西。因此,
getFoo()
可能会触发一个复杂的计算,返回一个
Foo
实例,或者只返回一个名为
Foo
bar
的字段或其他任何内容。EL不在乎。

这实际上是公开的。所以在您的示例中,我将编写
${Foo.something}
?即使Foo不是一个变量?不。您将编写
${someObject.Foo}
,它将对名为“someObject”的页面、请求、会话或应用程序属性中存储的对象调用
getFoo()