?? servicesupport.java
字號:
package anni.tools;
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
/**
* 功能跟struts的DispathAction差不多吧?
* 使用反射自動轉發請求
*
* @author Lingo
* @version 1.0
* @since 2006-01-01 19:41
*/
public class ServiceSupport implements Service {
/**
* 類.
*/
private Class clazz;
/**
* 參數類型.
*/
private Class[] paramTypes;
/**
* 參數數組.
*/
private Object[] params;
/**
* 構造方法.
* 初始化反射需要的參數
*
* @author Lingo
* @since 2006-01-01 19:41
*/
public ServiceSupport() {
clazz = this.getClass();
paramTypes = new Class[] {HttpServletRequest.class};
}
/**
* 修改了請求轉發的主方法.
* 這里采用了反射,以后就不用再進行手工添加了。
*
* @author Lingo
* @since 2005-12-25 17:07
* @param request 請求
* @return String 跳轉的URL
*/
public final String service(final HttpServletRequest request) {
String action = request.getParameter("action");
try {
/*
* Log.info(clazz);
* Method[] m=clazz.getDeclaredMethods();
* Log.info(Arrays.asList(m));
*/
Method method = clazz.getDeclaredMethod(action, paramTypes);
/*
* Log.info(method);
*/
params = new Object[] {request};
Object result = method.invoke(this, params);
return result.toString();
} catch (Throwable ex) {
/*
* Log.info("error : "+ex.getMessage());
*/
System.out.println("找不到請求的對應方法 : " + action);
return "/";
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -