के लिए QueryStringBindable मैंने एक enum प्रकार Format
परिभाषित किया है जो QueryStringBindable
लागू करता है। मुझे लगता है कि मैंने इसे सही तरीके से कार्यान्वित किया है, लेकिन मेरे मार्ग फ़ाइल में, मैं अपने पैरामीटर को रूट पैरामीटर के रूप में निर्दिष्ट नहीं कर सकता, क्योंकि संकलक इसे नहीं ढूंढ सकता है, और मुझे नहीं पता कि इसे रूट फ़ाइल में कैसे आयात किया जाए।एक कस्टम enum
यहाँ enum है:
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();
}
}
और यहाँ मेरा मार्ग है:
GET /deposits controllers.Deposits.index(selectedAccountKey: Long ?= 0, format: Format ?= Format.Html)
मैं अपने enum के बारे में संकलक कैसे बता सकते हैं? धन्यवाद!
संपादित
मैं भी रूप में अन्य पदों में सिफारिश की गई है Build.scala में टाइप करने के लिए पथ को जोड़ने की कोशिश की है:
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)
)
मुझे लगता है कि बदल गया है और अपने सर्वर को पुनः आरंभ, लेकिन ऐसा लगता है कि कोई फर्क नहीं पड़ता। मार्गों फ़ाइल में
पोस्ट करने से पहले यह कोशिश की। कोई पाँसा नहीं। – Samo