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

Reply via email to