3

我有一个接受几个表单参数的 POST 方法调用。我希望 JAX-RS 处理不存在特定表单参数的情况。

例子 :

@POST @Produces (MediaType.APPLICATION_JSON) public Response makeCall(@FormParam("input") final String input) { }

现在,如果我不为“输入”传递任何值,则控件进入此方法并将输入的值视为空值。

但是当输入的值为空时,我不希望控件进入此方法。

关于我们如何实现这一目标的任何想法?

当所需的表单参数不存在时,JAX-RS 会抛出错误 400(错误请求)吗?

4

3 回答 3

1

使用 JAX-RS 2.0 实现,您可以使用@NotNullBean Validation 规范提供的注释来确保该@FormParam("input")值不为空。

https://jersey.java.net/documentation/latest/bean-validation.html

HTH。

于 2014-03-28T09:45:12.733 回答
1

我遇到了同样的问题。以下修复可能有效(至少它对我有效):

@POST 
@Produces (MediaType.APPLICATION_JSON) 
public Response makeCall(@Valid @FormParam("input") final String input) {
}

请注意此@Valid注释。

于 2017-02-17T08:36:48.927 回答
0

@NotNull不工作时,您可以自行检查。

if (input == null) {
    throw new javax.ws.rs.BadRequestException();
}
于 2015-09-24T03:59:30.777 回答