在我的POJO中使用@XStreamOmitField似乎没有任何效果。带注释的字段仍然以xml或json表示形式公开。
@XStreamAlias("Pojo")
@Entity
public class Pojo {
private String name;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long key;
@XStreamOmitField
private String hidden;
public Pojo(String name, String hidden) {
this.name = name;
this.hidden = hidden;
}
}
并在ServerResource
中@Get
public Pojo test() {
Pojo pj= new Pojo("hansi","hinter");
return pj;
}
让我
<com.myComp.ORMTest.Pojo>
<name>hansi</name>
<hidden>hinter</hidden>
</com.myComp.ORMTest.Pojo>
为什么忽略注释的想法?
答案 0 :(得分:15)
您必须告诉XStream显式处理注释:
XStream xstream = new XStream();
xstream.processAnnotations(MyClass.class);
或者,您应该添加此代码以告知XStream处理所有注释:
xstream.autodetectAnnotations(true);
答案 1 :(得分:2)
我想到了两件事:
1。)您是否告诉XStream解析注释?
2。)您的Web框架是否可以使用代理来访问pojos而那些不会委托注释? (发生在Apache Tapestry的朋友身上)