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> - * <interceptor-ref name="jsfSetup"> - * <param name="actionListener"></param> - * <param name="defaultRenderKitId"></param> - * <param name="supportedLocale"></param> - * <param name="defaultLocale"></param> - * <param name="messageBundle"></param> - * <param name="navigationHandler">org.apache.struts2.jsf.StrutsNavigationHandler</param> - * <param name="propertyResolver"></param> - * <param name="stateManager"></param> - * <param name="variableResolver"> - * org.apache.myfaces.el.VariableResolverImpl - * ,org.apache.struts2.jsf.StrutsVariableResolver - * </param> - * <param name="viewHandler;">org.apache.shale.tiles.TilesViewHandler</param> - * </interceptor-ref> + * <interceptor-ref name="jsfSetup"> + * <param name="actionListener"></param> + * <param name="defaultRenderKitId"></param> + * <param name="supportedLocale"></param> + * <param name="defaultLocale"></param> + * <param name="messageBundle"></param> + * <param name="navigationHandler">org.apache.struts2.jsf.StrutsNavigationHandler</param> + * <param name="propertyResolver"></param> + * <param name="stateManager"></param> + * <param name="variableResolver"> + * org.apache.myfaces.el.VariableResolverImpl + * ,org.apache.struts2.jsf.StrutsVariableResolver + * </param> + * <param name="viewHandler;">org.apache.shale.tiles.TilesViewHandler</param> + * </interceptor-ref> * </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>