WebWork多方法Action
package net.wide.webwork.action.multiAction;
import org.apache.commons.beanutils.MethodUtils; import org.apache.log4j.Logger; import org.springframework.util.Assert;
import com.opensymphony.xwork.Action; import com.opensymphony.xwork.ActionContext;
public abstract class MultiAction implements Action { private static final Logger logger = Logger.getLogger(MultiAction.class); private static final String PARAMETER = "method";
public final String execute() throws Exception { ActionContext context = ActionContext.getContext(); Object[] objects = (Object[])context.getParameters().get(PARAMETER); Assert.notNull(objects); String method = (String)(objects[0]); if(logger.isDebugEnabled()){ logger.debug(method + " method is called!"); } Assert.notNull(method); initialize(); return (String)MethodUtils.invokeMethod(this, method, null); } protected void initialize()throws Exception{ //可以重写用来做一些初始化工作 logger.info("default initialize"); } } |
继承该类实现自己的方法,浏览器端就可以以*.action?method=test的方式调用了。