Author: mrdon
Date: Sun Sep 10 21:03:24 2006
New Revision: 442085

URL: http://svn.apache.org/viewvc?view=rev&rev=442085
Log:
Added automatic checkbox handling code that detect an unchecked checkbox and 
add it as a parameter with a default (usually 'false') value.  Uses a specially
named hidden field to detect unsubmitted checkboxes.  The default unchecked 
value
is overridable for non-boolean value'd checkboxes. Minor source formatting and 
cleaned
out an empty directory.

WW-992 WW-1372 WW-1349

Removed:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/sitegraph/collectors/
Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java
    struts/struts2/trunk/core/src/main/resources/struts-default.xml
    struts/struts2/trunk/core/src/main/resources/template/simple/checkbox.ftl
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-1.txt
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-2.txt
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-3.txt
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-4.txt
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-5.txt

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java
 Sun Sep 10 21:03:24 2006
@@ -59,21 +59,21 @@
  * <b>Example struts.xml configuration:</b>
  * 
  * <pre>
- *  &lt;interceptor-ref name=&quot;jsfSetup&quot;&gt;
- *      &lt;param name=&quot;actionListener&quot;&gt;&lt;/param&gt;
- *      &lt;param name=&quot;defaultRenderKitId&quot;&gt;&lt;/param&gt;
- *      &lt;param name=&quot;supportedLocale&quot;&gt;&lt;/param&gt;
- *      &lt;param name=&quot;defaultLocale&quot;&gt;&lt;/param&gt;
- *      &lt;param name=&quot;messageBundle&quot;&gt;&lt;/param&gt;
- *      &lt;param 
name=&quot;navigationHandler&quot;&gt;org.apache.struts2.jsf.StrutsNavigationHandler&lt;/param&gt;
- *      &lt;param name=&quot;propertyResolver&quot;&gt;&lt;/param&gt;
- *      &lt;param name=&quot;stateManager&quot;&gt;&lt;/param&gt;
- *      &lt;param name=&quot;variableResolver&quot;&gt;
- *          org.apache.myfaces.el.VariableResolverImpl
- *         ,org.apache.struts2.jsf.StrutsVariableResolver
- *      &lt;/param&gt;
- *      &lt;param 
name=&quot;viewHandler;&quot;&gt;org.apache.shale.tiles.TilesViewHandler&lt;/param&gt;
- *  &lt;/interceptor-ref&gt;
+ *   &lt;interceptor-ref name=&quot;jsfSetup&quot;&gt;
+ *       &lt;param name=&quot;actionListener&quot;&gt;&lt;/param&gt;
+ *       &lt;param name=&quot;defaultRenderKitId&quot;&gt;&lt;/param&gt;
+ *       &lt;param name=&quot;supportedLocale&quot;&gt;&lt;/param&gt;
+ *       &lt;param name=&quot;defaultLocale&quot;&gt;&lt;/param&gt;
+ *       &lt;param name=&quot;messageBundle&quot;&gt;&lt;/param&gt;
+ *       &lt;param 
name=&quot;navigationHandler&quot;&gt;org.apache.struts2.jsf.StrutsNavigationHandler&lt;/param&gt;
+ *       &lt;param name=&quot;propertyResolver&quot;&gt;&lt;/param&gt;
+ *       &lt;param name=&quot;stateManager&quot;&gt;&lt;/param&gt;
+ *       &lt;param name=&quot;variableResolver&quot;&gt;
+ *           org.apache.myfaces.el.VariableResolverImpl
+ *          ,org.apache.struts2.jsf.StrutsVariableResolver
+ *       &lt;/param&gt;
+ *       &lt;param 
name=&quot;viewHandler;&quot;&gt;org.apache.shale.tiles.TilesViewHandler&lt;/param&gt;
+ *   &lt;/interceptor-ref&gt;
  * </pre>
  * 
  * <p>
@@ -209,16 +209,16 @@
      *            The action invocation
      */
     public String intercept(ActionInvocation invocation) throws Exception {
-        if (facesContextFactory != null)
-        {
+        if (facesContextFactory != null) {
             if (isFacesAction(invocation)) {
 
                 invocation.getInvocationContext().put(
                         FacesInterceptor.FACES_ENABLED, Boolean.TRUE);
 
-                FacesContext facesContext = 
facesContextFactory.getFacesContext(
-                        ServletActionContext.getServletContext(),
-                        ServletActionContext.getRequest(), ServletActionContext
+                FacesContext facesContext = facesContextFactory
+                        .getFacesContext(ServletActionContext
+                                .getServletContext(), ServletActionContext
+                                .getRequest(), ServletActionContext
                                 .getResponse(), lifecycle);
 
                 setLifecycle(lifecycle);
@@ -230,7 +230,8 @@
                 }
             }
         } else {
-            throw new StrutsException("Unable to initialize jsf interceptors 
probably due missing JSF implementation libraries",
+            throw new StrutsException(
+                    "Unable to initialize jsf interceptors probably due 
missing JSF implementation libraries",
                     invocation.getProxy().getConfig());
         }
         return invocation.invoke();

Modified: struts/struts2/trunk/core/src/main/resources/struts-default.xml
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/struts-default.xml?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/struts-default.xml (original)
+++ struts/struts2/trunk/core/src/main/resources/struts-default.xml Sun Sep 10 
21:03:24 2006
@@ -51,6 +51,7 @@
             <interceptor name="validation" 
class="com.opensymphony.xwork2.validator.ValidationInterceptor"/>
             <interceptor name="workflow" 
class="com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"/>
             <interceptor name="store" 
class="org.apache.struts2.interceptor.MessageStoreInterceptor" />
+            <interceptor name="checkbox" 
class="org.apache.struts2.interceptor.CheckboxInterceptor" />
             
             <!-- JSF interceptors, one per lifecycle phase -->
             <interceptor class="org.apache.struts2.jsf.FacesSetupInterceptor" 
name="jsfSetup" />
@@ -156,6 +157,7 @@
                 <interceptor-ref name="model-driven"/>
                 <interceptor-ref name="fileUpload"/>
                 <interceptor-ref name="static-params"/>
+                <interceptor-ref name="checkbox"/>
                 <interceptor-ref name="params"/>
                 <interceptor-ref name="conversionError"/>
                 <interceptor-ref name="validation">

Modified: 
struts/struts2/trunk/core/src/main/resources/template/simple/checkbox.ftl
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/template/simple/checkbox.ftl?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/template/simple/checkbox.ftl 
(original)
+++ struts/struts2/trunk/core/src/main/resources/template/simple/checkbox.ftl 
Sun Sep 10 21:03:24 2006
@@ -26,3 +26,4 @@
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
 />
+<input type="hidden" name="__checkbox_${parameters.name?html}" 
value="${parameters.fieldValue?html}"/>
\ No newline at end of file

Modified: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-1.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-1.txt?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-1.txt
 (original)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-1.txt
 Sun Sep 10 21:03:24 2006
@@ -3,6 +3,7 @@
        </td>
     <td valign="top" align="left">
                <input type="checkbox" name="foo" value="baz" checked="checked" 
id="someId" title="mytitle" onfocus="test();"/>
+               <input type="hidden" name="__checkbox_foo" value="baz"/>
         <label for="someId" class="checkboxLabel">mylabel</label>
     </td>
 </tr>

Modified: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-2.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-2.txt?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-2.txt
 (original)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-2.txt
 Sun Sep 10 21:03:24 2006
@@ -3,6 +3,7 @@
        </td>
     <td valign="top" align="left">
         <input type="checkbox" name="foo" value="baz" id="foo" 
title="mytitle"/>
+        <input type="hidden" name="__checkbox_foo" value="baz"/>
         <label for="foo" class="checkboxLabel">mylabel</label>
     </td>
 </tr>

Modified: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-3.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-3.txt?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-3.txt
 (original)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-3.txt
 Sun Sep 10 21:03:24 2006
@@ -10,6 +10,7 @@
        </td>
     <td valign="top" align="left">
           <input type="checkbox" name="foo" value="baz" checked="checked" 
id="foo" title="mytitle" onclick="test();" ondblclick="test();"/>
+          <input type="hidden" name="__checkbox_foo" value="baz"/>
           <label for="foo" class="checkboxErrorLabel">mylabel</label>
     </td>
 </tr>

Modified: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-4.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-4.txt?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-4.txt
 (original)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-4.txt
 Sun Sep 10 21:03:24 2006
@@ -6,5 +6,6 @@
 <tr>
     <td colspan="2">
                <input type="checkbox" name="foo" value="baz" checked="checked" 
id="someId" title="mytitle" onfocus="test();"/>
+               <input type="hidden" name="__checkbox_foo" value="baz"/>
     </td>
 </tr>

Modified: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-5.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-5.txt?view=diff&rev=442085&r1=442084&r2=442085
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-5.txt
 (original)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Checkbox-5.txt
 Sun Sep 10 21:03:24 2006
@@ -4,5 +4,6 @@
        </td>
     <td valign="top" align="left">
                <input type="checkbox" name="foo" value="baz" checked="checked" 
id="someId" title="mytitle" onfocus="test();"/>
+               <input type="hidden" name="__checkbox_foo" value="baz"/>
     </td>
 </tr>


Reply via email to