package org.nutz.el.opt.custom; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.List; import org.nutz.el.opt.RunMethod; import org.nutz.lang.Encoding; import org.nutz.plugin.Plugin; public class DoURLEncoder implements RunMethod, Plugin { public boolean canWork() { return true; } public Object run(List<Object> fetchParam) { if (fetchParam.isEmpty()) throw new IllegalArgumentException("need args!!"); Object val = fetchParam.get(0); if (val == null) return ""; Object enc = null; if (fetchParam.size() > 1) { enc = fetchParam.get(1); } if (enc == null) enc = Encoding.UTF8; try { return URLEncoder.encode(val.toString(), enc.toString()); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException("can't do urlencode[" + val + "]", e); } } public String fetchSelf() { return "urlencode"; } }