package org.nutz.mvc.impl; import javax.servlet.ServletContext; import org.nutz.ioc.IocMaking; import org.nutz.ioc.ValueProxy; import org.nutz.ioc.ValueProxyMaker; import org.nutz.ioc.meta.IocValue; import org.nutz.ioc.val.StaticValue; import org.nutz.lang.Lang; public class ServletValueProxyMaker implements ValueProxyMaker { private ServletContext sc; public ServletValueProxyMaker(ServletContext sc) { this.sc = sc; } public String[] supportedTypes() { return Lang.array("app"); } public ValueProxy make(IocMaking ing, IocValue iv) { if (iv.getValue() == null) return null; String value = iv.getValue().toString(); if ("app".equals(iv.getType())) { if ("$servlet".equalsIgnoreCase(value)) return new StaticValue(sc); return new StaticValue(sc.getAttribute(value)); } return null; } }