我的类(class)中有以下字段:
private List<String> messages;
这是我的映射:
<field name="messages" collection="arraylist" type="string" container="false>
<bind-xml name="errors" node="element"/>
</field>
这是我通过编码得到的结果:
<errors><string>message1</string><string>message2</string></errors>
这就是我想要实现的目标:
<errors><error>message1</error><error>message2</error></errors>
感谢任何帮助!
最佳答案
您使用编码来实现此目的有什么原因吗?它将有一套定义 XML 输出的方法,以便它知道如何在解码时重新创建对象。因此,如果您确实想要使用编码来输出 XML,我认为您需要创建一个名为 Error 的新类型,您的列表将是:
private List<Error> messages;
以及映射:
<field name="messages" collection="arraylist" type="error" container="false>
<bind-xml name="errors" node="element"/>
</field>
或者,如果您只是想创建 xml 输出,并且您的内容确实与上面给出的一样简单,那么您可以编写一个 toXml() 方法,该方法循环遍历列表,添加您想要的内容。可以使用 fromXml() 方法完成逆操作,该方法使用 DOM 或 SAX 解析 XML 并重建字符串列表。
关于java - Castor:如何映射简单的字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2598621/