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>