package cn.jeesoft.core.freemarker.fn; import java.util.List; import cn.jeesoft.core.utils.StringUtils; import cn.jeesoft.mvc.helper.RequestHolder; import freemarker.template.TemplateMethodModelEx; import freemarker.template.TemplateModelException; /** * 全局Getter模板方法 * @author king */ public class GetTemplateMethod implements TemplateMethodModelEx { @SuppressWarnings("rawtypes") @Override public Object exec(List args) throws TemplateModelException { if (args != null && args.size() > 0) { Object defValue = null; if (args.size() > 1) { defValue = args.get(1); } if (defValue == null) { defValue = ""; } // 要获取的参数名 String name = String.valueOf(args.get(0)); if (StringUtils.isNotEmpty(name)) { Object value = get(name, defValue); System.out.println("name="+value); return value; } return defValue; } return ""; } public Object get(String name, Object defValue) throws TemplateModelException { if (StringUtils.isNotEmpty(name)) { try { String param = RequestHolder.getRequest().getParameter(name); if (StringUtils.isNotEmpty(param)) { return param; } } catch (Exception e) { e.printStackTrace(); } try { Object attr = RequestHolder.getSession().getAttribute(name); if (attr != null) { return attr; } } catch (Exception e) { e.printStackTrace(); } } return defValue; } }