package org.nutz.mvc.adaptor.extractor; import java.util.HashSet; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.nutz.mvc.adaptor.ParamExtractor; /** * refer为map时的提取器 * * @author juqkai(juqkai@gmail.com) * */ public class MapParamExtractor implements ParamExtractor { private HttpServletRequest req; private Map<String, Object> map; public MapParamExtractor(HttpServletRequest req, Map<String, Object> refer) { this.req = req; this.map = refer; } public String[] extractor(String name) { if (null != map && map.containsKey(name)) { Object obj = map.get(name); if (obj instanceof String[]) return (String[]) obj; if (obj == null) return null; return new String[]{obj.toString()}; } return req.getParameterValues(name); } @SuppressWarnings("unchecked") public Set<String> keys() { Set<String> ss = new HashSet<String>(); ss.addAll(map.keySet()); ss.addAll(req.getParameterMap().keySet()); return ss; } }