【问题标题】:Extracting value from xml attribute using digester3 pattern使用digester3模式从xml属性中提取值
【发布时间】:2013-04-10 15:04:47
【问题描述】:

有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) ...
}

我不知道,如何 可以实现 digester3pattern 以使用其 setter 设置 Person 类的 id strong> (setId(String id)) 这样的风格:

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

【问题讨论】:

    标签: java apache-commons-digester


    【解决方案1】:

    使用 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");
            }
    }
    

    您可以咨询javadoc of digester3 以获得更好的想法。

    【讨论】:

      猜你喜欢
      • 2021-03-27
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多