package org.nutz.mvc.upload.injector; import java.lang.reflect.Array; import java.util.List; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.nutz.lang.Lang; import org.nutz.mvc.adaptor.ParamInjector; public class MapArrayInjector implements ParamInjector { public MapArrayInjector(Class<?> eleType, String name) { this.eleType = eleType; this.name = name; } private Class<?> eleType; private String name; public Object get(ServletContext sc, HttpServletRequest req, HttpServletResponse resp, Object refer) { Object obj = ((Map<?, ?>) refer).get(name); if (obj == null) return null; if (obj instanceof List) { return Lang.collection2array((List<?>) ((List<?>) obj)); } Object re = Array.newInstance(eleType, 1); Array.set(re, 0, obj); return re; } }