package com.aggrepoint.winlet;
import java.lang.reflect.Method;
import java.util.Hashtable;
/**
* 实现可以在EL中通过win.访问的工具方法
*
* @author Jiangming Yang (yangjm@gmail.com)
*/
public class WinletEl {
static final Class<?>[] MODULE_METHOD_PARAM_TYPE = { String.class };
static Hashtable<String, Method> m_htMethods = new Hashtable<String, Method>();
String m_strMethod;
public void setMethod(String method) {
m_strMethod = method;
}
public String getMethod() {
return m_strMethod;
}
public Object execute(String param) {
try {
Method method = m_htMethods.get(m_strMethod);
if (method == null) {
method = this.getClass().getMethod(m_strMethod,
MODULE_METHOD_PARAM_TYPE);
m_htMethods.put(m_strMethod, method);
}
return method.invoke(this, new Object[] { param });
} catch (Exception e) {
}
return null;
}
/**
* 调用函数<br>
* 不支持函数定义,函数定义必须使用TagLib
*
* @param param
* @return
*/
public Object func(String param) {
ReqInfo reqInfo = ContextUtils.getReqInfo();
StringBuffer sb = new StringBuffer();
// if (reqInfo.m_bUseAjax)
// sb.append("document.");
sb.append(param);
sb.append(reqInfo.getRequestId());
return sb.toString();
}
}