2

XMLを持つ:

<root>
  <person id = "123"/>
</root>

Bean マッピング:

public class Root {
    private Person person;
    public void setPerson(Person person) ...
}

public class Person {
    String id;
    public void setId(String id) ...
}

そのようなスタイルでセッター( )を使用してクラスを設定するためのパターン実装する方法がわかりません:digester3idPersonsetId(String id)

new AbstractRulesModule() {
        @Override
        protected void configure() {
            forPattern("root").createObject().ofType(Root.class);    
            forPattern("root/person").createObject().ofType(Person.class).then().setNext("setPerson");
        }
}
4

1 に答える 1

3

callMethod( )callParam( ) を使用します。コードは次のようになります。

new AbstractRulesModule() {
    @Override
    protected void configure() {
        forPattern("root").createObject().ofType(Root.class);
        forPattern("root/person").createObject().ofType(Person.class).then()
                .callMethod("setId").withParamCount(1).then()
                .callParam().ofIndex(0).fromAttribute("id").then()
                .setNext("setPerson");
        }
}

より良いアイデアを得るには、digester3 のjavadoc を参照してください。

于 2013-07-06T11:33:56.507 に答える