パブリック クラス カスタマー { プライベート ユーザー ユーザー; プライベート文字列名; パブリック ユーザー 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 を作成させる方法。
3509 次
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 に答える