package com.github.HarryHook.coding2017.litestruts;
import java.lang.reflect.Method;
import java.util.Map;
public class Struts {
private final static Configuration cfg = new Configuration("struts.xml");
public static View runAction(String actionName, Map<String, String> parameters) {
String clzName = cfg.getClassName(actionName);
if (clzName == null) {
return null;
}
try {
Class<?> clz = Class.forName(clzName);
Object action = clz.newInstance();
ReflectionUtil.setParameters(action, parameters);
Method m = clz.getDeclaredMethod("execute");
String resultName = (String) m.invoke(action);
Map<String, Object> params = ReflectionUtil.getParameterMap(action);
String resultView = cfg.getResultView(actionName, resultName);
View view = new View();
view.setParameters(params);
view.setJsp(resultView);
return view;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}