@Override public String[] getParameterValues(String name) { if (!needRequestRestore) return super.getParameterValues(name); MultivaluedHashMap<String, String> formParams = getParams(); if (formParams == null) { return super.getParameterValues(name); } String[] values = request.getParameterValues(name); List<String> list = new LinkedList<>(); if (values != null) { for (String val : values) list.add(val); } List<String> vals = formParams.get(name); if (vals != null) list.addAll(vals); return list.toArray(new String[list.size()]); }
@Override public Enumeration<String> getParameterNames() { if (!needRequestRestore) return super.getParameterNames(); MultivaluedHashMap<String, String> formParams = getParams(); if (formParams == null) { return super.getParameterNames(); } Set<String> names = new HashSet<>(); Enumeration<String> qnames = super.getParameterNames(); while (qnames.hasMoreElements()) names.add(qnames.nextElement()); names.addAll(formParams.keySet()); return Collections.enumeration(names); }
@Override public Map<String, String[]> getParameterMap() { if (!needRequestRestore) return super.getParameterMap(); MultivaluedHashMap<String, String> formParams = getParams(); if (formParams == null) { return super.getParameterMap(); } Map<String, String[]> map = new HashMap<>(); Enumeration<String> names = getParameterNames(); while (names.hasMoreElements()) { String name = names.nextElement(); String[] values = getParameterValues(name); if (values != null) { map.put(name, values); } } return map; }
@Override public String getParameter(String name) { if (!needRequestRestore) return super.getParameter(name); String param = super.getParameter(name); if (param != null) return param; MultivaluedHashMap<String, String> formParams = getParams(); if (formParams == null) { return null; } return formParams.getFirst(name); }