我注意到来自javax.ws.rs.QueryParam的@QueryParam注释中有一种奇怪的行为;
参考下面的代码片段,当我将网址设置为:
http://host:port/services/serv123?test=OK
我可以检索' test'如预期的那样。
但是,当我将网址设置为:
时http://host:port/services/serv123#top?test=OK
@QueryParam(" test")返回 null 。
这是我正在使用的代码。每个注释都是明确导入的。
@Path("/services")
public class Services {
[...]
@GET
@Path("/{srvID}")
@Produces(MediaType.TEXT_HTML)
public ServicesView getServiceDetailPage(@PathParam("srvID") String srvId,
@QueryParam("test") String test) {
[...]
return new ServicesView([...]);
}
[...]
}
我在Dropwizard 0.9.1(包括泽西岛)中测试了这个
请注意:
http://host:port/services/serv123#top?test=OK
是一个完全合法的网址,@ QueryParam应该能够处理它(我很高兴被证明是错误的,只是解释为什么它不是一个合法的网址)。 我错过了什么?
答案 0 :(得分:1)
而不是
http://host:port/services/serv123#top?test=OK
使用
http://host:port/services/serv123?test=OK#top
如果您希望?test=OK
成为查询参数而不是锚点的一部分。