gpt4 book ai didi

java - 如何在 Jersey GET 请求中将多个查询参数映射到 bean 的字段?

转载 作者:IT老高 更新时间:2023-10-28 20:32:55 26 4
gpt4 key购买 nike

服务类有一个接受多个参数的@GET 操作。这些参数作为查询参数传递给 @GET 服务调用。

@GET
@Path("find")
@Produces(MediaType.APPLICATION_XML)
public FindResponse find(@QueryParam("prop1") String prop1,
@QueryParam("prop2") String prop2,
@QueryParam("prop3") String prop3,
@QueryParam("prop4") String prop4, ...)

这些参数的列表越来越多,所以我想将它们放入一个包含所有这些参数的 bean 中。

@GET
@Path("find")
@Produces(MediaType.APPLICATION_XML)
public FindResponse find(ParameterBean paramBean)
{
String prop1 = paramBean.getProp1();
String prop2 = paramBean.getProp2();
String prop3 = paramBean.getProp3();
String prop4 = paramBean.getProp4();
}

你会怎么做?这甚至可能吗?

最佳答案

Jersey 2.0 中,您需要使用 BeanParam以正常的泽西风格无缝提供您正在寻找的东西。

从上面链接的文档页面中,您可以使用 BeanParam 执行以下操作:

@GET
@Path("find")
@Produces(MediaType.APPLICATION_XML)
public FindResponse find(@BeanParam ParameterBean paramBean)
{
String prop1 = paramBean.prop1;
String prop2 = paramBean.prop2;
String prop3 = paramBean.prop3;
String prop4 = paramBean.prop4;
}

然后 ParameterBean.java 将包含:

public class ParameterBean {
@QueryParam("prop1")
public String prop1;

@QueryParam("prop2")
public String prop2;

@QueryParam("prop3")
public String prop3;

@QueryParam("prop4")
public String prop4;
}

我更喜欢参数 bean 上的公共(public)属性,但如果您愿意,也可以使用 getter/setter 和私有(private)字段。

关于java - 如何在 Jersey GET 请求中将多个查询参数映射到 bean 的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com