这是函数头
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("/getxyz")
public Response getXyz(@QueryParam("input") String input ){
SomeClass abc = someService.getValue(input);
并且输入值也可以包含&符号。我面临的问题是,当我使用@QueryParam
时,它会在&符号后跳过所有值。
例如:如果从浏览器端再次输入test&test
,则仅将其解释为test
。
此外,我使用encodeURIComponent(input)
在客户端对输入进行编码。
有什么想法吗?
答案 0 :(得分:3)
您应该在浏览器端对&符号进行编码,使用test%26test
代替test&test
。如果您按照说明使用encodeURIComponent
,请在客户端进行该编码后显示您的查询参数。它应该是test%26test
答案 1 :(得分:2)
查询参数由& 符号分隔,这就是它在您的情况下在& 之后跳过第二次测试的原因。如果您同时需要test
,请将其作为test and test
发送到网址。
另请阅读What is the proper way to seperate query string parameters in a url?,了解如何发送查询参数。
答案 2 :(得分:2)
最终,我能够使用Spring MVC框架解决此问题,即使用@RequestParam
来解析输入请求。它会准确地将test%20%26%20test
解码为test & test
。
如果您的项目使用Spring MVC和Jersey,这种方法将非常有用。感谢大家提出的宝贵建议!