1
パブリック クラス カスタマー {
    プライベート ユーザー ユーザー;
    プライベート文字列名;

    パブリック ユーザー getUser() {
        ユーザーを返します。
    }

    public void setUser(ユーザー ユーザー) {
        this.user = ユーザー;
    }

    public String getName() {
        名前を返す;
    }

    public void setName(文字列名) {
        this.name = 名前;
    }

}

パブリック クラス ユーザー {
    プライベート文字列名;

    public String getName() {
        名前を返す;
    }

    public void setName(文字列名) {
        this.name = 名前;
    }

}


public static void main(String[] args) {
        試す {
            顧客 顧客 = 新しい顧客();

            オブジェクト ツリー = Ognl.parseExpression("user.name");

            Ognl.setValue(ツリー、顧客、「こんにちは」);

        } キャッチ (OgnlException e) {
            e.printStackTrace();
        }
}

ognl.OgnlException: setProperty(null, "name", hello) のターゲットが null です

ognl にユーザー auto を作成させる方法。
4

1 に答える 1

1

これを試して

public static void main(String[] args) {
    try {
        Customer customer = new Customer();
        User user = new User();
        customer.setUser(user);

        Object tree = Ognl.parseExpression("user.name");

        Ognl.setValue(tree, customer, "hello");

    } catch (OgnlException e) {
        e.printStackTrace();
    }
}

サンプル コードの問題は、インスタンス「customer」に null ユーザーが含まれていることです。したがって、OGNL は基本的に customer.getUser().setName("hello") を呼び出しており、"customer.getUser()" は null を返します。

于 2011-06-05T06:37:08.630 に答える