Solon 路由的 Url 大小写匹配与事项注意

发布时间 2023-05-07 22:55:04作者: 带刺的坐椅

Solon 路由器对 url 的匹配默认是 “忽略大小写” 的。如果有需要,可以强制开启:v2.2.14 后支持

@SolonMain
public class App{
    public static void main(String args){
        Solon.start(App.class, args, app -> {
            app.router().caseSensitive(true); //或许以后默认值会变,可以强制用 false 或 true 锁定
        });
    }
}

开启之后,以下几个请求就是有区别的了:

// http://localhost:8080/test/Demo
// http://localhost:8080/test/demo
// http://localhost:8080/test/deMo

//需要三个接口去对应
@Mapping("test")
@Controller
public class DemoController{
    @Mapping("Demo")
    public void demo1(){
    }
    
    @Mapping("demo")
    public void demo2(){
    }
    
    @Mapping("deMo")
    public void demo2(){
    }
}

如果不开启?这三个请求是一样的:

// http://localhost:8080/test/Demo
// http://localhost:8080/test/demo
// http://localhost:8080/test/deMo

//由一个接口去对应
@Mapping("test")
@Controller
public class DemoController{
    @Mapping("demo")
    public void demo2(){
    }
}

在使用 “ctx.path()” 做比对时。。。建议改用:“ctx.pathAsUpper()、ctx.pathAsLower()” 做比对。