Revision: 1355 http://stripes.svn.sourceforge.net/stripes/?rev=1355&view=rev Author: bengunter Date: 2010-11-17 04:18:57 +0000 (Wed, 17 Nov 2010)
Log Message: ----------- Applied fix for STS-726 from 1.5.x brach. This was fixed in the branch over a year ago, but it somehow did not get applied to trunk. Modified Paths: -------------- trunk/stripes/src/net/sourceforge/stripes/tag/WizardFieldsTag.java Modified: trunk/stripes/src/net/sourceforge/stripes/tag/WizardFieldsTag.java =================================================================== --- trunk/stripes/src/net/sourceforge/stripes/tag/WizardFieldsTag.java 2010-11-17 03:50:55 UTC (rev 1354) +++ trunk/stripes/src/net/sourceforge/stripes/tag/WizardFieldsTag.java 2010-11-17 04:18:57 UTC (rev 1355) @@ -15,18 +15,23 @@ package net.sourceforge.stripes.tag; import static net.sourceforge.stripes.controller.StripesConstants.URL_KEY_FIELDS_PRESENT; + +import java.util.HashSet; +import java.util.Set; + +import javax.servlet.ServletRequest; +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.tagext.TryCatchFinally; + import net.sourceforge.stripes.action.ActionBean; +import net.sourceforge.stripes.controller.ActionResolver; import net.sourceforge.stripes.controller.StripesConstants; +import net.sourceforge.stripes.controller.StripesFilter; import net.sourceforge.stripes.exception.StripesJspException; +import net.sourceforge.stripes.exception.StripesServletException; import net.sourceforge.stripes.util.CryptoUtil; import net.sourceforge.stripes.util.HtmlUtil; -import javax.servlet.ServletRequest; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TryCatchFinally; -import java.util.HashSet; -import java.util.Set; - /** * <p>Examines the request and include hidden fields for all parameters that have do * not have form fields in the current form. Will include multiple values for @@ -72,6 +77,7 @@ excludes.add( StripesConstants.URL_KEY_SOURCE_PAGE ); excludes.add( StripesConstants.URL_KEY_FIELDS_PRESENT ); excludes.add( StripesConstants.URL_KEY_EVENT_NAME ); + excludes.add( StripesConstants.URL_KEY_FLASH_SCOPE_ID ); // Use the submitted action bean to eliminate any event related parameters ServletRequest request = getPageContext().getRequest(); @@ -109,8 +115,9 @@ } // Loop through the request parameters and output the values + Class<? extends ActionBean> actionBeanType = form.getActionBeanClass(); for (String name : paramNames) { - if (!excludes.contains(name)) { + if (!excludes.contains(name) && !isEventName(actionBeanType, name)) { hidden.setName(name); try { hidden.doStartTag(); @@ -149,4 +156,25 @@ /* Suppress anything, because otherwise this might mask any causal exception. */ } } + + /** + * Returns true if {...@code name} is the name of an event handled by {...@link ActionBean}s of type + * {...@code beanType}. + * + * @param beanType An {...@link ActionBean} class + * @param name The name to look up + */ + protected boolean isEventName(Class<? extends ActionBean> beanType, String name) { + if (beanType == null || name == null) + return false; + + try { + ActionResolver actionResolver = StripesFilter.getConfiguration().getActionResolver(); + return actionResolver.getHandler(beanType, name) != null; + } + catch (StripesServletException e) { + // Ignore the exception and assume the name is not an event + return false; + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today http://p.sf.net/sfu/msIE9-sfdev2dev _______________________________________________ Stripes-development mailing list Stripes-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-development