【问题标题】:ignore optional @Query parameters忽略可选的@Query 参数
【发布时间】:2019-04-11 07:53:20
【问题描述】:

如果没有声明对应的值,是否有可能忽略一些可选的@Query动态参数?

@Path("/users")
public class Services {

@GET
@Path("/get")
public Response getUsers(
    @QueryParam("from") int from,
    @QueryParam("to") int to,
    @QueryParam("age") int age,
    @QueryParam("name") String name
    @QueryParam("username") String username) 

【问题讨论】:

    标签: java web-services restful-authentication


    【解决方案1】:

    在JAX-RS中参数不是强制性的,如果你不给参数发送值默认值是null,你也可以使用@DefaultValue注解来提供默认值。

    使用也可以使用spring框架@RequestParam,你可以指定required=false所以这是可选的 here

    【讨论】:

    • 我根本不想在我要进行的下一个查询中包含相应的@Query 参数。好像不存在参数的特定值并且没有默认参数..有可能吗?
    • 如果我理解正确,你想在没有一些@query 参数的情况下进行GET 调用(即使在控制器方法中你有它们)对吗?是的,如果是这种情况,它将起作用,并且您未包含在查询中的参数将默认设置为null
    • 如果我向所有查询参数发送值,在我对所有参数进行查询之后.. 现在如果其中一些因为我没有发送值而保持为空,我想排除它们从下一个查询,而不是给他们一个默认值。好像null参数不存在
    • 是的,它会工作,尝试不带参数并在方法内执行sysout
    【解决方案2】:

    您可以使用@DefaultValue,所以如果未填写参数,您将获得默认值

    https://www.mkyong.com/webservices/jax-rs/jax-rs-queryparam-example/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2018-03-16
      • 2018-02-04
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多