对于 Web 服务中的 bean->xml 转换,我们使用 CXF 中的 Aegis(据我所知,它是 jaxb 兼容的)。
这是我的类型:
class C{
private int a;
private int b;
private T t;
...
}
class T{
private int t1;
private int t2;
}
我需要 t.t1
字段在 XML 中与 C
中的 a
和 b
处于同一级别(从 xml 恢复的 bean 应该是这样的:
class C{
private int a;
private int b;
private int t1
}
(客户端代码仅对结构 T
中的字段 t1
感兴趣)。
谢谢。
最佳答案
您可以将 getT1()
和 setT1(int)
添加到 C
并创建 getT()
@XmlTransient
class C {
// snip
/**
* JAXB only
*/
@SuppressWarnings("unused")
@XmlElement
private void setT1(int t1) {
if(t != null) {
t.setT1(t1);
} else {
// TODO
}
}
/**
* JAXB only
*/
@SuppressWarnings("unused")
private int getT1() {
if(t != null) {
return t.getT1(t1);
} else {
// TODO
}
}
}
关于java - Bean 到 XML 注释 : how to process nested structure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243104/