我正在用 java,netbeans 开发一个休息服务器。我有我的 GET 请求://myip/application/v1/menu/id=1@Stateless@Path("v1/cardapio")public class CardapioResource { @GET @Produces("application/json") @Path("id={id}") public String getCardapio(@PathParam("id") int id) { JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id)); JsonObject obj = new JsonObject(); obj.add("dados", array); return obj.toString(); }}它工作正常。但我想做不同的事情,正如我在其他示例中看到的那样,我想用“?”标记变量的开头。例如://myip/application/v1/menu/?id=1 @Stateless @Path("v1/cardapio") public class CardapioResource { @GET @Produces("application/json") @Path("?id={id}") public String getCardapio(@PathParam("id") int id) { JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id)); JsonObject obj = new JsonObject(); obj.add("dados", array); return obj.toString(); } }因此错误 404,找不到页面。
3 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
您在“其他示例”中看到的只是 URL 查询部分的正常用法。只需将它与@Queryparam
@Stateless
@Path("v1/cardapio")
public class CardapioResource {
@GET
@Produces("application/json")
@Path("/") // can be removed actually
public String getCardapio(@QueryParam("id") int id) {
JsonArray array = (JsonArray) gson.toJsonTree(ejb.findById(id));
JsonObject obj = new JsonObject();
obj.add("dados", array);
return obj.toString();
}
}
在这里你映射getCardapio到,你将尝试从查询字符串中v1/cardapio/获取id
Ex: //myip/application/v1/cardapio/?id=1
会起作用的。
添加回答
举报
0/150
提交
取消