2

有xml:

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

豆映射:

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

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

我不知道,如何以这种风格使用它的setter ( )来实现类设置digester3模式:idPersonsetId(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 回答