2
class Cat{
}

class Tiger extends Cat{
    public String getZooAddress(){
        return "cityZoo";
    };
}

Bean{
    public Cat getCat() {
        return new Tiger();
    }
}

#{bean.cat.zooAddress}実際に「cityZoo」が表示されていることに気づきました。それはどのように機能しますか?#{bean.cat}これは猫を表しており、電話をかけようとするとgetZooAddress()「プロパティが見つかりません」というエラーが発生することを想像しました。コンテナはCatからTigerへのダウンキャストを自動的に実行していますか?

4

1 に答える 1

0

Expression Languageは、Reflectionを利用して、参照されるオブジェクトの適切なプロパティアクセサーメソッドを見つけます。

ここに、ExpressionLanguageがこのように機能する理由の詳細があります。

http://today.java.net/pub/a/today/2006/03/07/unified-jsp-jsf-expression-language.html#evaluation-of-el

于 2012-12-17T19:31:25.967 に答える