なぜこれが機能しているのですか?
<td><c:forEach items="${profileForm.cityOptions}" var="city">
....Some Code
</c:forEach></td>
そして、私の場合、私profielForm
にはgetCityOptions()
方法がありませんcityOptions
。その動作しますが、私はいくつかの説明が必要です。
それがELの原理です。JavaBeanプロパティを検索します。Beanプロパティは、JavaBeansの規則に従って、パブリックゲッターが利用できる情報です。また、JavaBeansの規則に従って、JavaBeanセッターを使用して設定することもできます。
public Foo getFoo();
public void setFoo(Foo foo);
public boolean isCool();
public void setCool(boolean cool);
ELは、オブジェクトのフィールドを気にしません。これはプライベートなカプセル化されたものです。したがってgetFoo()
、インスタンスを返す複雑な計算をトリガーしたり、、などの名前のFoo
フィールドを返すことができます。ELは気にしません。foo
bar