相关疑难解决方法(0)

播放框架 - 绑定路由中的枚举

我正在使用java on play 2.2构建一个应用程序.

我有一个java枚举作为我在路由中使用的函数中的参数.

这是我的enum课程.我四处搜索,发现我需要实现QueryStringBindable才能在路由中使用它.

public enum Something implements QueryStringBindable<Something> {
    a,
    b,
    c;

    @Override
    public F.Option<ClientStatus> bind(String key, Map<String, String[]> params) {
        String[] arr = params.get(key);
        if (arr == null || arr.length == 0) {
            return F.Option.None();
        } else {
            Something status = Something.valueOf(arr[0]);
            return F.Option.Some(status);
        }
    }

    @Override
    public String unbind(String key) {
        return null;
    }

    @Override
    public String javascriptUnbind() {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

然而我尝试了我的路线:

GET    /someurl     controllers.Application.function(status: util.enums.Something)
Run Code Online (Sandbox Code Playgroud)

但它返回错误消息的错误请求:

要求'GET/someurl'[util.enums.Something]

我用谷歌搜索,并没有找到任何答案在我的情况下工作.我错过了什么或玩不支持绑定枚举?

java enums playframework playframework-2.0

5
推荐指数
1
解决办法
3298
查看次数

标签 统计

enums ×1

java ×1

playframework ×1

playframework-2.0 ×1