如何将Web服务中的“null”值表示为真正的null或空字符串,而不是“null”字符串。

4
在我的应用程序中,我正在使用JSF和Java Web Services。当任何一个web服务函数返回一个null值时,它总是表达为一个"null"字符串。因此,我不能使用EL表达式像#{empty object}来测试null值或空字符串。
我想问一下是否有一种配置方式,使Java Web Services将null值返回为空字符串,或者JSF/EL可以将"null"字符串理解为null值。

stringPropertynull 或空时,#{empty object.stringProperty} 将返回 true - rdcrng
重复的问题 https://dev59.com/P3E95IYBdhLWcg3wrP-w - Shamim Ahmmed
1
@rdcrng:如果stringProperty像OP的情况一样是“null”,那就不行。 - BalusC
1
@Shamim:你显然误解了问题。 - BalusC
这很奇怪。如果Web服务调用确实返回“null”,就像什么都没有一样,JAX-B(您正在使用基于JAX-B的ws吗?)将简单地省略响应对象上的标记/成员。您在应该为null的字段上是否有'required =“false”,nillable =“true”'? - kolossus
显示剩余2条评论
1个回答

0

如果你:

  • 使用SOAP,你必须记住SOAP消息是XML格式的,因此你可以返回一个空字符串作为null空对象

  • 使用HTTP或REST,你必须记住HTTP使用String类型来序列化对象和信息

所以你需要选择:

  • 正确序列化返回对象。如果你使用SOAP,请记住Base64编码。

  • 正确输出错误值。你可以直接序列化异常或自定义消息代码。

希望能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接