Example usage for org.springframework.web.context.request NativeWebRequest getParameterMap

List of usage examples for org.springframework.web.context.request NativeWebRequest getParameterMap

Introduction

In this page you can find the example usage for org.springframework.web.context.request NativeWebRequest getParameterMap.

Prototype

Map<String, String[]> getParameterMap();

Source Link

Document

Return a immutable Map of the request parameters, with parameter names as map keys and parameter values as map values.

Usage

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;

}