Mam zdefiniowany typ wyliczeniowy Format
, który implementuje QueryStringBindable
. Wydaje mi się, że zaimplementowałem go poprawnie, ale w moim pliku tras nie mogę określić mojego typu jako parametru trasy, ponieważ kompilator nie może go znaleźć i nie mam pojęcia, jak zaimportować go do pliku tras.QueryStringBindable dla niestandardowego wyliczenia
Oto wyliczenia:
package web;
import java.util.Map;
import play.libs.F;
import play.mvc.QueryStringBindable;
public enum Format implements QueryStringBindable<Format> {
Html,
Pdf,
Csv;
private Format value;
@Override
public F.Option<Format> bind(String key, Map<String, String[]> data) {
String[] vs = data.get(key);
if (vs != null && vs.length > 0) {
String v = vs[0];
value = Enum.valueOf(Format.class, v);
return F.Option.Some(value);
}
return F.Option.None();
}
@Override
public String unbind(String key) {
return key + "=" + value;
}
@Override
public String javascriptUnbind() {
return value.toString();
}
}
A oto moja trasa:
GET /deposits controllers.Deposits.index(selectedAccountKey: Long ?= 0, format: Format ?= Format.Html)
Jak mogę poinformować kompilator o moim enum? Dzięki!
Edit
Próbowałem zostały również dodanie ścieżki do typu w Build.scala jak zostało to zalecane w innych stanowisk:
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
routesImport += "web.Format",
resolvers += Resolver.url("My GitHub Play Repository", url("http://www.joergviola.de/releases/"))(Resolver.ivyStylePatterns)
)
Zmieniłem to i ponownym uruchomieniu mojego serwera, ale wydaje się, że nie robi żadnej różnicy.
Wypróbowałem to przed wysłaniem. Nie ma kości. – Samo