List of usage examples for org.springframework.web.bind WebDataBinder setAutoGrowNestedPaths
public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths)
From source file:net.solarnetwork.central.dras.web.UserController.java
/** * Setup support for Joda date/times.//from w w w . j ava 2 s . c o m * @param binder */ @InitBinder public void initBinder(WebDataBinder binder) { // we turn OFF autoGrowNestedPaths, so we can make use of interfaces as collection types // e.g. List<SortDescriptor> which does not work with autoGrowNestedPaths binder.setAutoGrowNestedPaths(false); }
From source file:org.gvnix.web.json.DataBinderMappingJackson2HttpMessageConverter.java
/** * Before call to {@link ObjectMapper#readValue(java.io.InputStream, Class)} * creates a {@link ServletRequestDataBinder} and put it to current Thread * in order to be used by the {@link DataBinderDeserializer}. * <p/>// w w w . j ava2s .co m * Ref: <a href= * "http://java.dzone.com/articles/java-thread-local-%E2%80%93-how-use">When * to use Thread Local?</a> * * @param javaType * @param inputMessage * @return */ private Object readJavaType(JavaType javaType, HttpInputMessage inputMessage) { try { Object target = null; String objectName = null; // CRear el DataBinder con un target object en funcion del javaType, // ponerlo en el thread local Class<?> clazz = javaType.getRawClass(); if (Collection.class.isAssignableFrom(clazz)) { Class<?> contentClazz = javaType.getContentType().getRawClass(); target = new DataBinderList<Object>(contentClazz); objectName = "list"; } else if (Map.class.isAssignableFrom(clazz)) { // TODO Class<?> contentClazz = // javaType.getContentType().getRawClass(); target = CollectionFactory.createMap(clazz, 0); objectName = "map"; } else { target = BeanUtils.instantiateClass(clazz); objectName = "bean"; } WebDataBinder binder = new ServletRequestDataBinder(target, objectName); binder.setConversionService(this.conversionService); binder.setAutoGrowNestedPaths(true); binder.setValidator(validator); ThreadLocalUtil.setThreadVariable(BindingResult.MODEL_KEY_PREFIX.concat("JSON_DataBinder"), binder); Object value = getObjectMapper().readValue(inputMessage.getBody(), javaType); return value; } catch (IOException ex) { throw new HttpMessageNotReadableException("Could not read JSON: ".concat(ex.getMessage()), ex); } }
From source file:net.solarnetwork.central.dras.web.DRASOperatorController.java
/** * Setup support for Joda date/times.//from w ww .ja v a2 s.c o m * @param binder */ @InitBinder public void initBinder(WebDataBinder binder) { // we turn OFF autoGrowNestedPaths, so we can make use of interfaces as collection types // e.g. List<NodeIdentity> which does not work with autoGrowNestedPaths binder.setAutoGrowNestedPaths(false); binder.registerCustomEditor(Period.class, new JodaPeriodFormatEditor()); binder.registerCustomEditor(Duration.class, new JodaDurationEditor()); binder.registerCustomEditor(DateTime.class, new JodaDateFormatEditor(DATE_TIME_FORMAT, TimeZone.getTimeZone("UTC"))); }