【发布时间】:2021-03-22 07:46:50
【问题描述】:
我在请求映射中将此作为查询参数: @QueryParam("isBenchmark") boolean isBenchmark
现在,如果传递任何字符串值,它也将其默认为 false。如果它不是真/假,我该如何避免这种情况并抛出错误。 是否有任何注释可以用来进行此类验证
【问题讨论】:
标签: spring spring-boot spring-mvc annotations
我在请求映射中将此作为查询参数: @QueryParam("isBenchmark") boolean isBenchmark
现在,如果传递任何字符串值,它也将其默认为 false。如果它不是真/假,我该如何避免这种情况并抛出错误。 是否有任何注释可以用来进行此类验证
【问题讨论】:
标签: spring spring-boot spring-mvc annotations
这是一个已知问题。
使用new Boolean(isBenchmark) 将其转换为布尔值,因此当isBenchmark 为真时,它转换为真,在所有其他情况下,它都转换为假。
不幸的是你必须自己处理它
public void YourMethod(@QueryParam("isBenchmark") String isBenchmark) {
boolean val
if (isBenchmark != null && isBenchmark.equals("true")){
val = true;
} else if (isBenchmark != null && isBenchmark.equals("false")) {
val = false;
} else {
Throw Exception or return a bad request
}
}
【讨论】: