package org.strecks.controller.chain.command;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.chain.commands.ActionCommandBase;
import org.apache.struts.chain.contexts.ActionContext;
import org.apache.struts.chain.contexts.ServletActionContext;
import org.strecks.form.controller.BindingForm;
import org.strecks.form.controller.ValidForm;
import org.strecks.form.handler.FormWrapper;
import org.strecks.form.handler.ValidateBindFormWrapper;
/**
* Follows <code>CreateActionForm</code> in chain
* @author Phil Zoio
*/
public class ProcessActionForm extends ActionCommandBase
{
private FormWrapper formHandler;
public ProcessActionForm()
{
super();
formHandler = newFormHandler();
}
protected FormWrapper newFormHandler()
{
return new ValidateBindFormWrapper();
}
@Override
public boolean execute(ActionContext actionContext) throws Exception
{
ActionForm form = actionContext.getActionForm();
if (form != null)
{
ServletActionContext sc = (ServletActionContext) actionContext;
HttpServletRequest request = sc.getRequest();
form = formHandler.wrapForm(form, request);
if (form instanceof BindingForm)
{
formHandler.handleBindingForm((BindingForm) form, request);
if (form instanceof ValidForm)
{
formHandler.handleValidForm((ValidForm) form, request);
}
}
actionContext.setActionForm(form);
}
return false;
}
}