You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot中GET请求URL参数提取方法咨询

解决GET请求参数提取问题

没问题,这事儿在JAX-RS里其实很简单,你只需要用@QueryParam注解来绑定URL里的查询参数就行。直接修改你的方法,把参数加进去:

@GET 
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getEmployee(
    @QueryParam("firstName") String firstName, 
    @QueryParam("lastName") String lastName
) {
    // 现在你就可以直接用firstName和lastName变量来做业务逻辑了
    // 比如筛选员工示例:
    Employee targetEmployee = employeeService.getByNames(firstName, lastName);
    if (targetEmployee != null) {
        return Response.ok(targetEmployee).build();
    } else {
        return Response.status(Response.Status.NOT_FOUND).build();
    }
}

补充细节说明:

  • @QueryParam会自动把URL中对应名称的查询参数值绑定到方法参数上,注意注解里的参数名要和URL里的完全匹配(比如你请求里的firstName、lastName,注解字符串不能写错大小写)。
  • 如果请求可能不传某个参数,你可以搭配@DefaultValue设置默认值,比如:@QueryParam("firstName") @DefaultValue("") String firstName,这样没传参数时变量会被设为空字符串,避免空指针问题。
  • 要是你需要一次性获取所有查询参数,也可以用@Context UriInfo来拿到完整参数集合,适合参数多或者动态处理的场景:
@GET 
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getEmployee(@Context UriInfo uriInfo) {
    MultivaluedMap<String, String> allQueryParams = uriInfo.getQueryParameters();
    String firstName = allQueryParams.getFirst("firstName");
    String lastName = allQueryParams.getFirst("lastName");
    // 后续业务逻辑处理...
}

内容的提问来源于stack exchange,提问作者DoArNa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:35:31