Author: pbenedict Date: Sun Jul 29 11:29:45 2007 New Revision: 560777 URL: http://svn.apache.org/viewvc?view=rev&rev=560777 Log: STR-286 and STR-1116: Push isPopulate and isReset to superclass
Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java?view=diff&rev=560777&r1=560776&r2=560777 ============================================================================== --- struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java (original) +++ struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java Sun Jul 29 11:29:45 2007 @@ -20,6 +20,8 @@ */ package org.apache.struts.chain.commands; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.struts.Globals; import org.apache.struts.action.ActionForm; import org.apache.struts.chain.contexts.ActionContext; @@ -34,6 +36,9 @@ * $ */ public abstract class AbstractPopulateActionForm extends ActionCommandBase { + + private static final Log log = LogFactory.getLog(AbstractPopulateActionForm.class); + // ---------------------------------------------------------- Public Methods /** @@ -57,14 +62,49 @@ return (false); } - // Reset and repopulate the form bean property values - reset(actionCtx, actionConfig, actionForm); - populate(actionCtx, actionConfig, actionForm); + // Reset the form bean only if configured so + if (isReset(actionCtx, actionConfig)) { + if (log.isDebugEnabled()) { + log.debug("Reseting form bean '" + actionConfig.getName() + "'"); + } + reset(actionCtx, actionConfig, actionForm); + } + + // Populate the form bean only if configured so + if (isPopulate(actionCtx, actionConfig)) { + if (log.isDebugEnabled()) { + log.debug("Populating form bean '" + actionConfig.getName() + "'"); + } + populate(actionCtx, actionConfig, actionForm); + } return (false); } // ------------------------------------------------------- Protected Methods + + /** + * Determines whether an action form should be reset + * + * @param request current HTTP request + * @param actionConfig action config for current request + * @return true if action form should be reset + * + * @since Struts 1.4 + */ + protected abstract boolean isReset(ActionContext context, + ActionConfig actionConfig); + + /** + * Determines whether an action form should be populated. + * + * @param context the ActionContext we are processing + * @param actionConfig action config for current request + * @return true if action form should be populated + * @since Struts 1.4 + */ + protected abstract boolean isPopulate(ActionContext context, + ActionConfig actionConfig); /** * <p>Call the <code>reset()</code> method on the specified form Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java?view=diff&rev=560777&r1=560776&r2=560777 ============================================================================== --- struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java (original) +++ struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java Sun Jul 29 11:29:45 2007 @@ -20,8 +20,6 @@ */ package org.apache.struts.chain.commands.servlet; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.struts.Globals; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; @@ -41,7 +39,6 @@ * $ */ public class PopulateActionForm extends AbstractPopulateActionForm { - private static final Log log = LogFactory.getLog(PopulateActionForm.class); // ------------------------------------------------------- Protected Methods @@ -51,23 +48,16 @@ ServletActionContext saContext = (ServletActionContext) context; HttpServletRequest request = saContext.getRequest(); - // Populate the form bean only if configured so - if (isPopulate(request, actionConfig)) { - RequestUtils.populate(actionForm, actionConfig.getPrefix(), - actionConfig.getSuffix(), saContext.getRequest()); - } + RequestUtils.populate(actionForm, actionConfig.getPrefix(), + actionConfig.getSuffix(), request); } protected void reset(ActionContext context, ActionConfig actionConfig, ActionForm actionForm) { - ServletActionContext saContext = (ServletActionContext) context; HttpServletRequest request = saContext.getRequest(); - // Reset the form bean only if configured so - if (isReset(request, actionConfig)) { - actionForm.reset((ActionMapping) actionConfig, saContext.getRequest()); - } + actionForm.reset((ActionMapping) actionConfig, request); // Set the multipart class if (actionConfig.getMultipartClass() != null) { @@ -79,27 +69,33 @@ // ---------------------------------------------------------- Helper Methods /** - * Verifies whether an action form should be populated + * Determines whether an action form should be populated * @param request current HTTP request * @param actionConfig action config for current request * @return true if action form should be populated * * @since Struts 1.4 */ - protected boolean isPopulate(HttpServletRequest request, ActionConfig actionConfig) { + protected boolean isPopulate(ActionContext context, ActionConfig actionConfig) { + ServletActionContext saContext = (ServletActionContext) context; + HttpServletRequest request = saContext.getRequest(); + String strPopulate = actionConfig.getPopulate(); return getResetOrPopulate(request, strPopulate); } /** - * Verifies whether an action form should be reset + * Determines whether an action form should be reset * @param request current HTTP request * @param actionConfig action config for current request * @return true if action form should be reset * * @since Struts 1.4 */ - protected boolean isReset(HttpServletRequest request, ActionConfig actionConfig) { + protected boolean isReset(ActionContext context, ActionConfig actionConfig) { + ServletActionContext saContext = (ServletActionContext) context; + HttpServletRequest request = saContext.getRequest(); + String strReset = actionConfig.getReset(); return getResetOrPopulate(request, strReset); } @@ -116,7 +112,7 @@ * * @since Struts 1.4 */ - protected boolean getResetOrPopulate(HttpServletRequest request, String strAttr) { + private boolean getResetOrPopulate(HttpServletRequest request, String strAttr) { // Reset configuration is not defined (should not happen, // because default value are set to "request,forward". if (strAttr == null) return true;