JAXB xmlelement布尔标志的默认值

时间:2014-07-20 21:50:18

标签: java rest jaxb jersey jetty

  

嗨,我有一个JAXB类,如下所示,用作参数   POST方法。它有一个名为isTrue的参数,它是一个   可选参数,参数的默认值应为true   当它没有在REST请求中传递。但是当我想要的时候   调用方法而不是传递set的默认值为   任何人都建议我这个问题可能是什么原因?我   当我没有为isTrue传递任何值时,需要true作为值。   我正在使用使用jersey的REST webservices。

 @XmlRootElement(name = "param")
 public class Param {
 private boolean isTrue;

 @XmlElement(required = false, name = "isTrue", defaultValue = "true")
 public boolean isTrue() {
    return isTrue;
 }

 public void setTrue(boolean isTrue) {
    this.isTrue = isTrue;
 }

}

提前致谢

1 个答案:

答案 0 :(得分:1)

这实际上是一个已知问题,请参阅https://java.net/projects/jaxb2-commons/pages/Default-Value

基本上,上面的文章描述了一个JAXB插件,如果需要,可以将默认的布尔变量显式初始化为true。由于您没有生成JAXB代码并手动编写它,因此您只需将参数显式初始化为true:

private boolean isTrue = true;

这就是上面引用的插件作为解决方案。