@Override public DynamicForm withError(final String key, final String error, final List<Object> args) { final Form<Dynamic> form = super.withError(asDynamicKey(key), error, args); return new DynamicForm(super.rawData(), super.files(), form.errors(), form.value(), this.messagesApi, this.formatters, this.validatorFactory, this.config, lang().orElse(null)); }
/** * Gets the concrete value if the submission was a success. */ public String get(String key) { try { return (String)get().getData().get(asNormalKey(key)); } catch(Exception e) { return null; } }
@Override public DynamicForm bindFromRequest(Http.Request request, String... allowedFields) { return bind(this.messagesApi.preferred(request).lang(), request.attrs(), requestData(request), requestFileData(request), allowedFields); }
@Override @Deprecated public DynamicForm bind(JsonNode data, String... allowedFields) { return bind(ctxLang(), ctxRequestAttrs(), data, allowedFields); }
@Override public DynamicForm discardingErrors() { final Form<Dynamic> form = super.discardingErrors(); return new DynamicForm(super.rawData(), super.files(), form.errors(), form.value(), this.messagesApi, this.formatters, this.validatorFactory, this.config, lang().orElse(null)); }
@Override public DynamicForm withLang(Lang lang) { return new DynamicForm(super.rawData(), super.files(), this.errors(), this.value(), this.messagesApi, this.formatters, this.validatorFactory, this.config, lang); }
/** * Binds request data to this form - that is, handles form submission. * * @return a copy of this form filled with the new data */ @Override public DynamicForm bindFromRequest(play.mvc.Http.Request request, String... allowedFields) { return bind(requestData(request), allowedFields); }
@Override public DynamicForm bind(Lang lang, TypedMap attrs, Map<String,String> data, Map<String, Http.MultipartFormData.FilePart<?>> files, String... allowedFields) { Form<Dynamic> form = super.bind(lang, attrs, data.entrySet().stream().collect(Collectors.toMap(e -> asDynamicKey(e.getKey()), e -> e.getValue())), files.entrySet().stream().collect(Collectors.toMap(e -> asDynamicKey(e.getKey()), e -> e.getValue())), allowedFields); return new DynamicForm(form.rawData(), form.files(), form.errors(), form.value(), messagesApi, formatters, validatorFactory, config, lang); }
DynamicForm form = new DynamicForm().form().bindFromRequest(); if(form.get("board") == null) { // do something }
/** * Retrieves a field. * * @param key field name * @return the field - even if the field does not exist you get a field */ public Field field(String key) { Field field = super.field(asDynamicKey(key)); return new Field(this, key, field.constraints(), field.format(), field.errors(), field.value() == null ? get(key) : field.value() ); }
/** * Creates a new dynamic form. * * @param data the current form data (used to display the form) * @param errors the collection of errors associated with this form * @param value optional concrete value if the form submission was successful */ public DynamicForm(Map<String,String> data, Map<String,List<ValidationError>> errors, Option<Dynamic> value) { super(null, DynamicForm.Dynamic.class, data, errors, value); rawData = new HashMap<String, String>(); for (Map.Entry<String, String> e : data.entrySet()) { rawData.put(asNormalKey(e.getKey()), e.getValue()); } }
@Override @Deprecated public DynamicForm bindFromRequest(Map<String,String[]> requestData, String... allowedFields) { return bindFromRequestData(ctxLang(), ctxRequestAttrs(), requestData, Collections.emptyMap(), allowedFields); }
/** * Retrieve an error by key. */ public ValidationError error(String key) { return super.error(asDynamicKey(key)); }
@Override public Form.Field field(String key, Lang lang) { // #1310: We specify inner class as Form.Field rather than Field because otherwise, // javadoc cannot find the static inner class. Field field = super.field(asDynamicKey(key), lang); return new Field(this, key, field.constraints(), field.format(), field.errors(), field.value().orElse(value(key).map(v -> v instanceof String ? (String)v : null).orElse(null)), field.file().orElse(value(key).map(v -> v instanceof Http.MultipartFormData.FilePart ? (Http.MultipartFormData.FilePart)v : null).orElse(null)) ); }
/** * @return a dynamic form. */ public DynamicForm form() { return new DynamicForm(messagesApi, formatters, validatorFactory, config); }
import play.data.DynamicForm; import play.data.Form; public static Result cadastraPedidoNoBanco() { DynamicForm form = Form.form().bindFromRequest(); if (form.data().size() == 0) { return badRequest("Expceting some data"); } else { String response = "Client " + form.get("nome_cliente") + "has phone number " + form.get("telefone_cliente"); return ok(response); } }
final DynamicForm df = new DynamicForm(); // FormItem[] fi = new FormItem[3]; CheckboxItem ci = new CheckboxItem(); ci.setShowTitle(false); ci.setTitle(""); SelectItem si = new SelectItem(); si.setTitle("LANGUAGE"); si.setValues("PDF"); df.setItems(ci, si); df.setColWidths("20", "250", "*"); df.setNumCols(3); // df.setFields(fi); RootPanel.get().add(df);
@Override public DynamicForm bindFromRequestData(Lang lang, TypedMap attrs, Map<String,String[]> requestData, Map<String, Http.MultipartFormData.FilePart<?>> requestFileData, String... allowedFields) { Map<String,String> data = new HashMap<>(); fillDataWith(data, requestData); return bind(lang, attrs, data, requestFileData, allowedFields); }
@Override public DynamicForm bind(Lang lang, TypedMap attrs, Map<String,String> data, String... allowedFields) { return bind(lang, attrs, data, Collections.emptyMap(), allowedFields); }