List of usage examples for org.springframework.web.bind WebDataBinder getTarget
@Nullable
public Object getTarget()
From source file:edu.mayo.cts2.framework.webapp.rest.controller.ValueSetDefinitionResolutionController.java
@InitBinder public void initEntityDescriptionRestrictionBinder(WebDataBinder binder, @RequestParam(value = PARAM_CODESYSTEM, required = false) String codesystem, @RequestParam(value = PARAM_TAG, required = false) String tag, @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) String codesystemversion, @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity) { if (binder.getTarget() instanceof ResolvedValueSetResolutionEntityRestrictions) { ResolvedValueSetResolutionEntityRestrictions restrictions = (ResolvedValueSetResolutionEntityRestrictions) binder .getTarget();/*from w w w . j a v a 2s.com*/ if (StringUtils.isNotBlank(codesystemversion)) { restrictions.setCodeSystemVersion(ModelUtils.nameOrUriFromEither(codesystemversion)); } if (CollectionUtils.isNotEmpty(entity)) { restrictions.setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity)); } //TODO: Allow for tags? } }
From source file:edu.mayo.cts2.framework.webapp.rest.controller.EntityDescriptionController.java
@InitBinder public void initEntityDescriptionRestrictionBinder(WebDataBinder binder, @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem, @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) List<String> codesystemversion, @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity) { if (binder.getTarget() instanceof EntityDescriptionQueryServiceRestrictions) { EntityDescriptionQueryServiceRestrictions restrictions = (EntityDescriptionQueryServiceRestrictions) binder .getTarget();//from ww w. j a v a 2 s. co m if (CollectionUtils.isNotEmpty(codesystemversion)) { for (String csv : codesystemversion) { restrictions.getCodeSystemVersions().add(ModelUtils.nameOrUriFromEither(csv)); } } if (CollectionUtils.isNotEmpty(entity)) { restrictions.setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity)); } if (CollectionUtils.isNotEmpty(codesystem)) { for (String cs : codesystem) { String[] parts = StringUtils.split(cs, PARAM_SEPARATOR); TaggedCodeSystemRestriction restriction = new TaggedCodeSystemRestriction(); restriction.setCodeSystem(ModelUtils.nameOrUriFromEither(parts[0])); String tagName; if (parts.length == 2) { tagName = ControllerUtils .getReference(parts[1], this.entityDescriptionQueryService.getSupportedTags()) .getContent(); } else { tagName = DEFAULT_TAG; } restriction.setTag(tagName); restrictions.getTaggedCodeSystems().add(restriction); } } } }
From source file:edu.mayo.cts2.framework.webapp.rest.controller.MapController.java
@InitBinder public void initMapRestrictionBinder(WebDataBinder binder, @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity, @RequestParam(value = PARAM_VALUESET, required = false) List<String> valueset, @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem, @RequestParam(value = PARAM_ALL_OR_SOME, required = false) RestrictionType allorsome, @RequestParam(value = PARAM_CODESYSTEMS_MAPROLE, required = false) MapRole codesystemsmaprole, @RequestParam(value = PARAM_VALUESETS_MAPROLE, required = false) MapRole valuesetsmaprole) { if (binder.getTarget() instanceof MapQueryServiceRestrictions) { MapQueryServiceRestrictions restrictions = (MapQueryServiceRestrictions) binder.getTarget(); if (CollectionUtils.isNotEmpty(valueset)) { restrictions.setValueSetRestriction(new ValueSetRestriction()); restrictions.getValueSetRestriction().setMapRole(valuesetsmaprole); restrictions.getValueSetRestriction().setValueSets(ControllerUtils.idsToNameOrUriSet(valueset)); }//from w ww . j av a 2s .c om if (CollectionUtils.isNotEmpty(codesystem)) { restrictions.setCodeSystemRestriction(new CodeSystemRestriction()); restrictions.getCodeSystemRestriction().setMapRole(codesystemsmaprole); restrictions.getCodeSystemRestriction() .setCodeSystems(ControllerUtils.idsToNameOrUriSet(codesystem)); } } }
From source file:edu.mayo.cts2.framework.webapp.rest.controller.ValueSetDefinitionResolutionController.java
@InitBinder public void initResolvedValueSetQueryServiceRestrictionsBinder(WebDataBinder binder, @RequestParam(value = PARAM_VALUESET, required = false) List<String> valueset, @RequestParam(value = PARAM_DEFINITION, required = false) List<String> definition, @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem, @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) List<String> codesystemversion, @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity) { if (binder.getTarget() instanceof ResolvedValueSetQueryServiceRestrictions) { ResolvedValueSetQueryServiceRestrictions restrictions = (ResolvedValueSetQueryServiceRestrictions) binder .getTarget();/*from ww w. j av a 2 s . c o m*/ if (CollectionUtils.isNotEmpty(valueset)) { restrictions.setValueSets(ControllerUtils.idsToNameOrUriSet(valueset)); } if (CollectionUtils.isNotEmpty(definition)) { restrictions.setValueSetDefinitions(ControllerUtils.idsToNameOrUriSet(definition)); } if (CollectionUtils.isNotEmpty(codesystem)) { restrictions.setCodeSystems(ControllerUtils.idsToNameOrUriSet(codesystem)); } if (CollectionUtils.isNotEmpty(codesystemversion)) { restrictions.setCodeSystemVersions(ControllerUtils.idsToNameOrUriSet(codesystemversion)); } if (CollectionUtils.isNotEmpty(entity)) { restrictions.setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity)); } } }
From source file:com.fengduo.bee.commons.component.FormModelMethodArgumentResolver.java
/** * {@inheritDoc}//from ww w .j a v a 2 s . com * <p> * Downcast {@link org.springframework.web.bind.WebDataBinder} to * {@link org.springframework.web.bind.ServletRequestDataBinder} before binding. * * @throws Exception * @see org.springframework.web.servlet.mvc.method.annotation.ServletRequestDataBinderFactory */ protected void bindRequestParameters(ModelAndViewContainer mavContainer, WebDataBinderFactory binderFactory, WebDataBinder binder, NativeWebRequest request, MethodParameter parameter) throws Exception { // Map<String, Boolean> hasProcessedPrefixMap = new HashMap<String, Boolean>(); // // Class<?> targetType = binder.getTarget().getClass(); // WebDataBinder simpleBinder = binderFactory.createBinder(request, null, null); Collection target = (Collection) binder.getTarget(); Class<?>[] paramTypes = parameter.getMethod().getParameterTypes(); Method method = parameter.getMethod(); Object[] args = new Object[paramTypes.length]; Map<String, Object> argMap = new HashMap<String, Object>(args.length); MapBindingResult errors = new MapBindingResult(argMap, ""); ParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer(); for (int i = 0; i < paramTypes.length; i++) { Class<?> paramType = paramTypes[i]; MethodParameter methodParam = new MethodParameter(method, i); methodParam.initParameterNameDiscovery(parameterNameDiscoverer); String paramName = methodParam.getParameterName(); // ?? if (BeanUtils.isSimpleProperty(paramType)) { SimpleTypeConverter converter = new SimpleTypeConverter(); Object value; // ? if (paramType.isArray()) { value = request.getParameterValues(paramName); } else { value = request.getParameter(paramName); } try { args[i] = converter.convertIfNecessary(value, paramType, methodParam); } catch (TypeMismatchException e) { errors.addError(new FieldError(paramName, paramName, e.getMessage())); } } else { // ???POJO if (paramType.isArray()) { ObjectArrayDataBinder binders = new ObjectArrayDataBinder(paramType.getComponentType(), paramName); target.addAll(ArrayUtils.arrayConvert(binders.bind(request))); } } } // if (Collection.class.isAssignableFrom(targetType)) {// bind collection or array // // Type type = parameter.getGenericParameterType(); // Class<?> componentType = Object.class; // // Collection target = (Collection) binder.getTarget(); // // List targetList = new ArrayList(target); // // if (type instanceof ParameterizedType) { // componentType = (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]; // } // // if (parameter.getParameterType().isArray()) { // componentType = parameter.getParameterType().getComponentType(); // } // // for (Object key : servletRequest.getParameterMap().keySet()) { // String prefixName = getPrefixName((String) key); // // // ?prefix ?? // if (hasProcessedPrefixMap.containsKey(prefixName)) { // continue; // } else { // hasProcessedPrefixMap.put(prefixName, Boolean.TRUE); // } // // if (isSimpleComponent(prefixName)) { // bind simple type // Map<String, Object> paramValues = WebUtils.getParametersStartingWith(servletRequest, prefixName); // Matcher matcher = INDEX_PATTERN.matcher(prefixName); // if (!matcher.matches()) { // ? array=1&array=2 // for (Object value : paramValues.values()) { // targetList.add(simpleBinder.convertIfNecessary(value, componentType)); // } // } else { // ? array[0]=1&array[1]=2 // int index = Integer.valueOf(matcher.group(1)); // // if (targetList.size() <= index) { // growCollectionIfNecessary(targetList, index); // } // targetList.set(index, simpleBinder.convertIfNecessary(paramValues.values(), componentType)); // } // } else { // ? votes[1].title=votes[1].title&votes[0].title=votes[0].title&votes[0].id=0&votes[1].id=1 // Object component = null; // // ? ????? // Matcher matcher = INDEX_PATTERN.matcher(prefixName); // if (!matcher.matches()) { // throw new IllegalArgumentException("bind collection error, need integer index, key:" + key); // } // int index = Integer.valueOf(matcher.group(1)); // if (targetList.size() <= index) { // growCollectionIfNecessary(targetList, index); // } // Iterator iterator = targetList.iterator(); // for (int i = 0; i < index; i++) { // iterator.next(); // } // component = iterator.next(); // // if (component == null) { // component = BeanUtils.instantiate(componentType); // } // // WebDataBinder componentBinder = binderFactory.createBinder(request, component, null); // component = componentBinder.getTarget(); // // if (component != null) { // ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues( // servletRequest, // prefixName, // ""); // componentBinder.bind(pvs); // validateIfApplicable(componentBinder, parameter); // if (componentBinder.getBindingResult().hasErrors()) { // if (isBindExceptionRequired(componentBinder, parameter)) { // throw new BindException(componentBinder.getBindingResult()); // } // } // targetList.set(index, component); // } // } // target.clear(); // target.addAll(targetList); // } // } else if (MapWapper.class.isAssignableFrom(targetType)) { // // Type type = parameter.getGenericParameterType(); // Class<?> keyType = Object.class; // Class<?> valueType = Object.class; // // if (type instanceof ParameterizedType) { // keyType = (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]; // valueType = (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[1]; // } // // MapWapper mapWapper = ((MapWapper) binder.getTarget()); // Map target = mapWapper.getInnerMap(); // if (target == null) { // target = new HashMap(); // mapWapper.setInnerMap(target); // } // // for (Object key : servletRequest.getParameterMap().keySet()) { // String prefixName = getPrefixName((String) key); // // // ?prefix ?? // if (hasProcessedPrefixMap.containsKey(prefixName)) { // continue; // } else { // hasProcessedPrefixMap.put(prefixName, Boolean.TRUE); // } // // Object keyValue = simpleBinder.convertIfNecessary(getMapKey(prefixName), keyType); // // if (isSimpleComponent(prefixName)) { // bind simple type // Map<String, Object> paramValues = WebUtils.getParametersStartingWith(servletRequest, prefixName); // // for (Object value : paramValues.values()) { // target.put(keyValue, simpleBinder.convertIfNecessary(value, valueType)); // } // } else { // // Object component = target.get(keyValue); // if (component == null) { // component = BeanUtils.instantiate(valueType); // } // // WebDataBinder componentBinder = binderFactory.createBinder(request, component, null); // component = componentBinder.getTarget(); // // if (component != null) { // ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues( // servletRequest, // prefixName, // ""); // componentBinder.bind(pvs); // // validateComponent(componentBinder, parameter); // // target.put(keyValue, component); // } // } // } // } else {// bind model // ServletRequestDataBinder servletBinder = (ServletRequestDataBinder) binder; // servletBinder.bind(servletRequest); // } }
From source file:edu.mayo.cts2.framework.webapp.rest.controller.MapVersionController.java
@InitBinder public void initMapVersionRestrictionBinder(WebDataBinder binder, @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity, @RequestParam(value = PARAM_VALUESET, required = false) List<String> valueset, @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem, @RequestParam(value = PARAM_ENTITIES_MAPROLE, required = false) MapRole entitiesmaprole, @RequestParam(value = PARAM_ENTITIES_MAPSTATUS, required = false) MapStatus mapstatus, @RequestParam(value = PARAM_ALL_OR_SOME, required = false) RestrictionType allorsome, @RequestParam(value = PARAM_CODESYSTEMS_MAPROLE, required = false) MapRole codesystemsmaprole, @RequestParam(value = PARAM_VALUESETS_MAPROLE, required = false) MapRole valuesetsmaprole) { if (binder.getTarget() instanceof MapVersionQueryServiceRestrictions) { MapVersionQueryServiceRestrictions restrictions = (MapVersionQueryServiceRestrictions) binder .getTarget();//from w w w. j a v a2 s . c om if (CollectionUtils.isNotEmpty(entity)) { restrictions.setEntitiesRestriction(new EntitiesRestriction()); restrictions.getEntitiesRestriction().setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity)); restrictions.getEntitiesRestriction().setAllOrSome(allorsome); restrictions.getEntitiesRestriction().setMapRole(entitiesmaprole); restrictions.getEntitiesRestriction().setMapStatus(mapstatus); } if (CollectionUtils.isNotEmpty(valueset)) { restrictions.setValueSetRestriction(new ValueSetRestriction()); restrictions.getValueSetRestriction().setMapRole(valuesetsmaprole); restrictions.getValueSetRestriction().setValueSets(ControllerUtils.idsToNameOrUriSet(valueset)); } if (CollectionUtils.isNotEmpty(codesystem)) { restrictions.setCodeSystemRestriction(new CodeSystemRestriction()); restrictions.getCodeSystemRestriction().setMapRole(codesystemsmaprole); restrictions.getCodeSystemRestriction() .setCodeSystems(ControllerUtils.idsToNameOrUriSet(codesystem)); } } }
From source file:edu.mayo.cts2.framework.webapp.rest.controller.AssociationController.java
@InitBinder public void initAssociationQueryServiceRestrictionsBinder(WebDataBinder binder, @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) String codeSystemVersion, @RequestParam(value = PARAM_SOURCEENTITYID, required = false) String sourceEntity, @RequestParam(value = PARAM_TARGETENTITYID, required = false) String targetEntity, @RequestParam(value = PARAM_SOURCEORTARGETENTITYID, required = false) String sourceOrTargetEntity, @RequestParam(value = PARAM_TARGETLITERALID, required = false) String targetLiteral, @RequestParam(value = PARAM_PREDICATEID, required = false) String predicate, @RequestParam(value = PARAM_TARGETEXPRESSIONID, required = false) String targetExpression) { if (binder.getTarget() instanceof AssociationQueryServiceRestrictions) { AssociationQueryServiceRestrictions restrictions = (AssociationQueryServiceRestrictions) binder .getTarget();//from ww w . ja v a2s. co m if (StringUtils.isNotBlank(codeSystemVersion)) { restrictions.setCodeSystemVersion(ModelUtils.nameOrUriFromEither(codeSystemVersion)); } if (StringUtils.isNotBlank(sourceEntity)) { restrictions.setSourceEntity(ControllerUtils.idToEntityNameOrUri(sourceEntity)); } if (StringUtils.isNotBlank(targetEntity)) { restrictions.setTargetEntity(ControllerUtils.idToEntityNameOrUri(targetEntity)); } if (StringUtils.isNotBlank(sourceOrTargetEntity)) { restrictions.setSourceOrTargetEntity(ControllerUtils.idToEntityNameOrUri(sourceOrTargetEntity)); } if (StringUtils.isNotBlank(targetLiteral)) { restrictions.setTargetLiteral(ControllerUtils.idToEntityNameOrUri(targetLiteral)); } if (StringUtils.isNotBlank(predicate)) { restrictions.setPredicate(ControllerUtils.idToEntityNameOrUri(predicate)); } if (StringUtils.isNotBlank(targetExpression)) { restrictions.setTargetExpression(ControllerUtils.idToEntityNameOrUri(targetExpression)); } } }
From source file:org.medici.bia.controller.user.RegisterUserController.java
/** * /* w ww. j a v a2 s . co m*/ * @param binder * @param request */ @InitBinder("command") public void initBinder(WebDataBinder binder, HttpServletRequest request) { // Don't allow user to override the binder.setDisallowedFields("remoteAddr"); // value ((RegisterUserCommand) binder.getTarget()).setRemoteAddress(request.getRemoteAddr()); }
From source file:org.opentestsystem.delivery.testadmin.rest.FacilityAvailabilityController.java
@InitBinder protected void initBinder(WebDataBinder binder) { if (binder.getTarget() != null && TestAdminBase.class.isAssignableFrom(binder.getTarget().getClass())) { binder.setValidator(this.facilityAvailabilityValidator); }//w ww.j a va 2s . c o m }