Solon v3.0.3

问题:path 参数有 %2f (/) 怎么办?

</> markdown

默认情况,Context::path() 是解码的。当请求为:/test/aa%2Fbb 时,解码后是 text/aa/bb。想要用 @Mapping 匹配并拿到路径变量:

方案1:

@Mapping("/test/**")
public void test(Context ctx){
    name = ctx.path().subString(6); //值为:aa/bb
}

方案2:

@Mapping("/test/{name}")
public void test(String name){
    name; //值为:aa%2Fbb
}

此案默认是不能匹配的,需要添加配置。使用后 Context::path() 是未解码的,name 需要自己解码。v2.8.6 后支持

server.request.useRawpath: true