【发布时间】:2014-01-30 22:10:36
【问题描述】:
我在 play 2.2 上用 java 构建一个应用程序。
我在路由中使用的函数中有一个 java 枚举作为参数。
这是我的枚举类。我四处搜索,发现我需要实现 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;
}
}
但我尝试过我的路线:
GET /someurl controllers.Application.function(status: util.enums.Something)
但它返回错误的请求,错误消息为:
对于请求 'GET /someurl' [util.enums.Something]
我用谷歌搜索并没有找到任何适合我的答案。我错过了什么还是 play 不支持绑定枚举?
【问题讨论】:
标签: java playframework enums playframework-2.0