List of usage examples for org.springframework.web.context.request NativeWebRequest getParameterMap
Map<String, String[]> getParameterMap();
From source file:com.epam.ta.reportportal.ws.resolver.FilterCriteriaResolver.java
@SuppressWarnings("unchecked") private <T> Filter resolveAsList(MethodParameter methodParameter, NativeWebRequest webRequest) { Class<T> domainModelType = (Class<T>) methodParameter.getParameterAnnotation(FilterFor.class).value(); Set<FilterCondition> filterConditions = webRequest.getParameterMap().entrySet().stream() .filter(parameter -> parameter.getKey().startsWith(DEFAULT_FILTER_PREFIX) && parameter.getValue().length > 0) .map(parameter -> {/* w ww . j a va 2 s . c o m*/ final String[] tokens = parameter.getKey().split("\\."); checkTokens(tokens); String stringCondition = tokens[1]; boolean isNegative = stringCondition.startsWith(NOT_FILTER_MARKER); Condition condition = getCondition( isNegative ? StringUtils.substringAfter(stringCondition, NOT_FILTER_MARKER) : stringCondition); String criteria = tokens[2]; return new FilterCondition(condition, isNegative, parameter.getValue()[0], criteria); }).collect(Collectors.toSet()); return new Filter(domainModelType, filterConditions); }
From source file:org.hobsoft.symmetry.spring.SymmetryMethodArgumentResolver.java
@Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { Object target = BeanUtils.instantiateClass(parameter.getParameterType()); T component = reflector.getComponentType().cast(target); reflector.absorb(component, webRequest.getParameterMap()); return component; }
From source file:org.opentides.web.processor.FormBindMethodProcessor.java
/** * Resolve the argument from the model or if not found instantiate it with * its default. The model attribute is then populated with request values * via data binding and validated. If no validation error, the model * is retrieved from database and merged with the submitted form. * /* w w w . j a v a 2s .co m*/ * @throws BindException if data binding and validation result in an error * @throws Exception if WebDataBinder initialization fails. */ @SuppressWarnings("unchecked") public final Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest nativeRequest, WebDataBinderFactory binderFactory) throws Exception { FormBind annot = parameter.getParameterAnnotation(FormBind.class); Class<?> clazz = parameter.getDeclaringClass(); String name = getName(annot, parameter); HttpServletRequest request = (HttpServletRequest) nativeRequest.getNativeRequest(); Method addForm = CacheUtil.getNewFormBindMethod(clazz); Object controller = beanFactory.getBean(parameter.getContainingClass()); Object target = (addForm != null) ? addForm.invoke(controller, request) : BeanUtils.instantiateClass(parameter.getParameterType()); MutablePropertyValues mpvs = new MutablePropertyValues(nativeRequest.getParameterMap()); WebDataBinder binder = binderFactory.createBinder(nativeRequest, target, name); if (binder.getTarget() != null) { binder.bind(mpvs); if (binder.getValidator() != null) binder.validate(); if (binder.getBindingResult().hasErrors()) { throw new BindException(binder.getBindingResult()); } String method = request.getMethod().toLowerCase(); // id should be the last segment of the uri String uri = request.getRequestURI(); String sid = uri.substring(uri.lastIndexOf("/") + 1); Long id = StringUtil.convertToLong(sid, 0); // if target extends BaseEntity and for update, link target to database record if (("put".equals(method) || "post".equals(method)) && id > 0 && BaseEntity.class.isAssignableFrom(parameter.getParameterType())) { // now retrieve record from database for updating Method updateForm = CacheUtil.getUpdateFormBindMethod(clazz); BaseEntity record = null; if (updateForm == null) { // no annotation, invoke from service Method getService = controller.getClass().getMethod("getService"); if (getService == null) { String message = "Cannot find method with @FormBind with update mode. " + "Also, unable to find service associated to controller." + "Please specify one that retrieves record from database."; throw new InvalidImplementationException(message); } BaseCrudService<? extends BaseEntity> service = (BaseCrudService<? extends BaseEntity>) getService .invoke(controller); record = (BaseEntity) service.load(sid); } else { // with annotation, invoke annotation record = (BaseEntity) updateForm.invoke(controller, sid, request); } if (record != null) { WebDataBinder updateBinder = binderFactory.createBinder(nativeRequest, record, name); updateBinder.bind(mpvs); mavContainer.addAllAttributes(updateBinder.getBindingResult().getModel()); return updateBinder.getTarget(); } else { String message = "Unable to find " + parameter.getParameterType().getSimpleName() + " with id=" + sid + " for update."; throw new DataAccessException(message); } } else if ("post".equals(method)) { mavContainer.addAllAttributes(binder.getBindingResult().getModel()); return binder.getTarget(); } else { throw new InvalidImplementationException( "@FormBind argument annotation can only be used on POST or PUT methods."); } } mavContainer.addAllAttributes(binder.getBindingResult().getModel()); return binder.getTarget(); }
From source file:org.springframework.data.document.web.bind.annotation.support.HandlerMethodInvoker.java
private Map resolveRequestParamMap(Class<? extends Map> mapType, NativeWebRequest webRequest) { Map<String, String[]> parameterMap = webRequest.getParameterMap(); if (MultiValueMap.class.isAssignableFrom(mapType)) { MultiValueMap<String, String> result = new LinkedMultiValueMap<String, String>(parameterMap.size()); for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) { for (String value : entry.getValue()) { result.add(entry.getKey(), value); }// w w w . j a v a 2 s.c o m } return result; } else { Map<String, String> result = new LinkedHashMap<String, String>(parameterMap.size()); for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) { if (entry.getValue().length > 0) { result.put(entry.getKey(), entry.getValue()[0]); } } return result; } }
From source file:org.springframework.social.connect.web.ConnectSupport.java
private MultiValueMap<String, String> getRequestParameters(NativeWebRequest request, String... ignoredParameters) { List<String> ignoredParameterList = asList(ignoredParameters); MultiValueMap<String, String> convertedMap = new LinkedMultiValueMap<String, String>(); for (Entry<String, String[]> entry : request.getParameterMap().entrySet()) { if (!ignoredParameterList.contains(entry.getKey())) { convertedMap.put(entry.getKey(), asList(entry.getValue())); }/*w w w.j av a 2 s .c om*/ } return convertedMap; }
From source file:org.springframework.web.bind.annotation.support.HandlerMethodInvoker.java
private Map<String, ?> resolveRequestParamMap(Class<? extends Map<?, ?>> mapType, NativeWebRequest webRequest) { Map<String, String[]> parameterMap = webRequest.getParameterMap(); if (MultiValueMap.class.isAssignableFrom(mapType)) { MultiValueMap<String, String> result = new LinkedMultiValueMap<String, String>(parameterMap.size()); for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) { for (String value : entry.getValue()) { result.add(entry.getKey(), value); }//from w ww. jav a2s. c o m } return result; } else { Map<String, String> result = new LinkedHashMap<String, String>(parameterMap.size()); for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) { if (entry.getValue().length > 0) { result.put(entry.getKey(), entry.getValue()[0]); } } return result; } }
From source file:plum.mvc.PageArgumentResolver.java
@Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { final PaginationParam attr = parameter.getParameterAnnotation(PaginationParam.class); final Map<String, String[]> params = webRequest.getParameterMap(); //?KEY?//from w w w . j a v a 2s . c o m final Map<String, String[]> case_params = new CaseInsensitiveMap(params); String sPageIndex = case_params.get(attr.indexName())[0]; String sPageSize = case_params.get(attr.sizeName())[0]; //like sore=column desc,column2 asc String sort = case_params.get(attr.sortName())[0]; final PageQuery pageQuery = new PageQuery(); int pageSize; int pageIndex; try { pageIndex = Integer.valueOf(sPageIndex); pageSize = Integer.valueOf(sPageSize); } catch (NumberFormatException e) { logger.error("number paging is error!", e); if (!attr.required()) { return null; } pageSize = attr.pageSize(); pageIndex = 0; } finally { try { case_params.clear(); } catch (UnsupportedOperationException e) { logger.warn("param is not clear!"); } } final List<SortInfo> sortFields = SortInfo.parseSortColumns(sort); pageQuery.setPageSize(pageSize); pageQuery.setSortInfoList(sortFields); pageQuery.setPage((pageIndex - 1) * pageSize); return pageQuery; }