Java 布尔标志的JAXB xmlelement默认值
我有一个Java 布尔标志的JAXB xmlelement默认值,java,rest,jaxb,jersey,jetty,Java,Rest,Jaxb,Jersey,Jetty,我有一个JAXB类,如下所示,它在 POST方法。它有一个名为isTrue的参数,它是一个 可选参数,参数的默认值应为true 当其未在REST请求中传递时。但是当我试图 调用该方法,并且不向其传递set as的默认值 false。有人能告诉我问题的原因吗?我 当我没有为isTrue传递任何值时,需要将true作为值。 我使用的是使用jersey的RESTWebServices @XmlRootElement(name = "param") public class Para
JAXB
类,如下所示,它在
POST
方法。它有一个名为isTrue的参数,它是一个
可选参数,参数的默认值应为true
当其未在REST
请求中传递时。但是当我试图
调用该方法,并且不向其传递set as的默认值
false
。有人能告诉我问题的原因吗?我
当我没有为isTrue
传递任何值时,需要将true
作为值。
我使用的是使用jersey的RESTWebServices
@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;
}
}
提前感谢这实际上是一个已知问题,请参阅 基本上,上面的文章描述了一个JAXB插件,如果需要,它可以显式地将默认布尔变量初始化为true。由于您没有生成JAXB代码并手动编写,因此只需显式地将参数初始化为true:
private boolean isTrue = true;
这就是上面提到的插件作为解决方案所做的。谢谢你的回复。我认为这是不允许的。因为我们在@XmlElement中指定defaultValue=“true”,它应该能够将true作为参数,对吗?你能告诉我我这里缺少什么吗?同意,我本来希望你能工作。您是否尝试过使用字段访问器类型?我将用一个例子来更新我的答案。这实际上是一个已知的问题,请参阅这里的背景,这里提供的解决方案是显式地将值设置为true,就像我的第一个答案一样。我提供的url是通过插件实现的,但是您可以手动完成,因为您是自己编写代码的。