我在玩2.2的java中構建應用程序。玩框架 - 在路由中綁定枚舉
我有一個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;
}
}
但我想在我的路線:
GET /someurl controllers.Application.function(status: util.enums.Something)
但因爲它返回一個錯誤信息錯誤的請求:
對於請求 'GET/someurl'[util.enums.Something ]
我GOOGLE了一下,沒有找到任何答案在我的情況下工作。我錯過了什麼或玩不支持綁定枚舉?
我對同樣的解決方案給了一個想法,但對我來說聽起來太難聽。所以我結束了字段綁定到一個字符串,並解析我的控制器中的字符串以獲得一個枚舉。儘管如此,這個冒險解決方案是最接近第2場比賽的。 – Tony
這種方式似乎更多的工作,但至少你玩框架照顧爲你返回正確的http錯誤代碼,如果有人得到拼寫錯誤。 –
當您需要從模板調用操作時,您的解決方案並不十分清晰。我的意思是這樣的代碼: 'link' 我需要放置什麼而不是'myEnumVar'? –