2013-02-09 18 views
13

में फ़ॉर्म में त्रुटियों को मैन्युअल रूप से कैसे जोड़ें, मैं रूपों में कुछ त्रुटियों को जोड़ने की कोशिश कर रहा हूं लेकिन मेरा कोड संकलित नहीं होता है।
विशेष रूप से, ऐसा लगता है कि आधिकारिक प्ले 2 एपीआई सही नहीं है।
हम देख सकते हैं कि त्रुटियों() http://www.playframework.com/documentation/api/2.0/java/play/data/Form.Field.html#errors()प्ले 2 फ्रेमवर्क

validationError
के एक सूची प्रदान वैसे भी अगर मैं कोशिश

ValidationError e = new ValidationError("name", "user already exist",new ArrayList()); 
filledForm.errors().add(e); 

मैं एक त्रुटि है कि विधि जोड़ें मौजूद नहीं है मिला है।
मुझे पता चला कि यह एक hashmap लेकिन अनुवर्ती कोड संकलन नहीं है:

filledForm.errors().put("name","s"); 

कैसे त्रुटियों को जोड़ने ?? धन्यवाद

संपादित करें:

filledForm.withError("name", "user already exist") 

आप एक वैश्विक त्रुटि भी जोड़ सकते हैं: हल धन्यवाद जुलिएन लाफों

ValidationError e = new ValidationError("name", "user already exist",new ArrayList()); 
ArrayList<ValidationError> errors = new ArrayList<ValidationError>(); 
errors.add(e); 
filledForm.errors().put("name",errors); 
return badRequest(loginForm.render(filledForm)); 
+2

एपीआई-डॉक में आप साझा एक फील्ड, नहीं एक प्रपत्र के लिए है। आपको ऐसा कुछ करने की कोशिश करनी चाहिए: 'myForm.field (myField) .errors.put ("...") ' –

उत्तर

11

कम विधि

filledForm.reject("name","user already exist");

return badRequest(loginForm.render(filledForm));

+0

बस FYI,' Form.reject' Play जावा में काम करता है: https://www.playframework.com/ प्रलेखन/2.3.8/एपीआई/जावा/प्ले/डेटा/फॉर्म.html # अस्वीकार% 28java.lang.String,% 20java.lang.String% 29 – null

11

आप उपयोग कर सकते हैं withError है

filledForm.withGlobalError("eneric error") 

स्रोत से: https://github.com/playframework/playframework/blob/3bebfa7c1226a438a687ec9a0a3e5c23e5aefa09/framework/src/play/src/main/scala/play/api/data/Form.scala#L252

+1

बस FYI, 'Form.withError' Play Scala में काम करता है: https: //www.playframework.com/documentation/2.3.8/api/scala/index.html#play.api.data.Form – null

संबंधित मुद्दे