尝试使用JAX-RS @PathParam
允许正斜杠。发生的事情是它占用了价值的后端,而不是整个价值。下面的例子
方法代码
@PUT
@POST
@Path("/temp/{keyValue:.+}")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public void setValues(@PathParam("keyValue") PathSegment myvalue) {
for (String key : myvalue.getMatrixParameters().keySet()) {
System.out.println(batch)
}
测试网址
https://localhost:8443/*path*/temp/keyValue;key1=THIS/SUCKS
结果
batch = SUCKS
期望的结果
batch = key1=THIS/SUCKS
我尝试更改方法签名中的正则表达式,但无法完成这项工作。如果所有内容都经过url编码,则可以通过
%2F
将其传递出去。但是,如果我将Apache httpd更改为AllowEncodedSlashes On
,它将破坏网站的其余部分。有什么想法吗?我正在运行httpd-> tomcat-> restService(JAX-RS)
最佳答案
我无法使其正常工作,因此我重写了它,使其接受了转换为JSON对象的字符串。在URL字符串中发送参数不是一个好主意,因为URL有字符限制。我现在将其作为数据通过AJAX调用发送。