預設情況,Solon 的 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 需要自己解碼。
server.request.useRawpath: true