@Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { ParamCollector paramCollector = new ParamCollector(); for (Iterator<String> it = webRequest.getParameterNames(); it.hasNext(); ) { String key = it.next(); String[] val = webRequest.getParameterValues(key); if (val.length > 1) { paramCollector.put(key, val); } else { paramCollector.put(key, val[0]); } // String value = webRequest.getParameter(key); // paramCollector.put(key, value); } return paramCollector; }
/** * Subclasses may override this for covariant result types * * <p>{@inheritDoc} */ @SuppressWarnings("deprecation") @Override public Query bind(String param, Object value) { try { int index = Integer.valueOf(param); return bind(index, value); } catch (NumberFormatException e) { ParamCollector collector = new ParamCollector(configuration(), true); collector.visit(this); List<Param<?>> params = collector.result.get(param); if (params == null || params.size() == 0) throw new IllegalArgumentException("No such parameter : " + param); for (Param<?> p : params) { p.setConverted(value); closeIfNecessary(p); } return this; } }