Package org.nutz.mvc.adaptor.injector

Source Code of org.nutz.mvc.adaptor.injector.MapReferInjector

package org.nutz.mvc.adaptor.injector;

import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.nutz.lang.Strings;
import org.nutz.lang.inject.Injecting;

/**
* 为PairUploadAdaptor提供支持
* 当get方法的refer为Map时,使用Map的key获取值进行注入
*
* @author lAndRaxeE(landraxee@gmail.com)
*
*/
public class MapReferInjector extends ObjectPairInjector {

  public MapReferInjector(String prefix, Class<?> type) {
    super(prefix, type);
  }

  @SuppressWarnings("unchecked")
  @Override
  public Object get(ServletContext sc, HttpServletRequest req,
      HttpServletResponse resp, Object refer) {
    Object obj = mirror.born();
    Map<String, Object> map = null;
    if (Map.class.isAssignableFrom(refer.getClass()))
      map = (Map<String, Object>) refer;
    for (int i = 0; i < injs.length; i++) {
      Injecting inj = injs[i];
      Object s;
      if (null != map && map.containsKey(names[i]))
        s = map.get(names[i]);
      else
        s = req.getParameter(names[i]);
      if (null == s)
        continue;
      if (s instanceof String && Strings.isBlank((String) s))
        s = null;
      inj.inject(obj, s);
    }
    return obj;
  }

}
TOP

Related Classes of org.nutz.mvc.adaptor.injector.MapReferInjector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.