mschachter 01/05/11 10:11:06
Modified: doc todo-1.1.xml
src/share/org/apache/struts/action Action.java
ActionForm.java
Log:
- Add an isCancelled() method to the Action class that takes a
MultipartRequestHandler as an argument. This should address
issues with the html:cancel tag, as long as the new isCancelled
method is called on for multipart forms.
- Add myself to the EJB Design Pattern TODO
Revision Changes Path
1.3 +3 -0 jakarta-struts/doc/todo-1.1.xml
Index: todo-1.1.xml
===================================================================
RCS file: /home/cvs/jakarta-struts/doc/todo-1.1.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- todo-1.1.xml 2001/04/12 16:00:42 1.2
+++ todo-1.1.xml 2001/05/11 17:10:47 1.3
@@ -159,6 +159,9 @@
<assigned>
<a href="mailto:[EMAIL PROTECTED]">Nic Hobbs</a>
</assigned>
+ <assigned>
+ <a href="mailto:[EMAIL PROTECTED]">Mike Schachter</a>
+ </assigned>
</task>
<task name="HTML No-Cache Support">
1.20 +27 -4 jakarta-struts/src/share/org/apache/struts/action/Action.java
Index: Action.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/Action.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- Action.java 2001/02/23 21:13:09 1.19
+++ Action.java 2001/05/11 17:10:55 1.20
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/action/Action.java,v 1.19
2001/02/23 21:13:09 craigmcc Exp $
- * $Revision: 1.19 $
- * $Date: 2001/02/23 21:13:09 $
+ * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/action/Action.java,v 1.20
2001/05/11 17:10:55 mschachter Exp $
+ * $Revision: 1.20 $
+ * $Date: 2001/05/11 17:10:55 $
*
* ====================================================================
*
@@ -67,6 +67,7 @@
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Locale;
+import java.util.Hashtable;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
@@ -75,6 +76,7 @@
import javax.servlet.http.HttpSession;
import org.apache.struts.taglib.html.Constants;
import org.apache.struts.util.MessageResources;
+import org.apache.struts.upload.MultipartRequestHandler;
/**
@@ -106,7 +108,7 @@
* by this Action.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.19 $ $Date: 2001/02/23 21:13:09 $
+ * @version $Revision: 1.20 $ $Date: 2001/05/11 17:10:55 $
*/
public class Action {
@@ -466,6 +468,27 @@
return ((request.getParameter(Constants.CANCEL_PROPERTY) != null) ||
(request.getParameter(Constants.CANCEL_PROPERTY_X) != null));
+ }
+
+ /**
+ * Returns <code>true</code> if the current multipart form's cancel button was
+ * pressed. This method will check if the cancel button generated by
+ * <strong>CancelTag</strong> was pressed by the user in the
+ * current request. If true, validation performed by an
+ * <strong>ActionForm</strong> validate() method will have been
+ * skipped by the controller servlet. A MultipartRequestHandler instance
+ * can be obtained from a multipart form by calling
+ * {@link ActionForm#getMultipartRequestHandler()
ActionForm.getMultipartRequestHandler()}.
+ *
+ * @param request The servlet request we are processing
+ * @see org.apache.struts.taglib.CancelTag
+ * @see org.apache.struts.action.ValidatingActionForm
+ */
+ protected boolean isCancelled(MultipartRequestHandler request) {
+
+ Hashtable elements = request.getTextElements();
+ return ((elements.get(Constants.CANCEL_PROPERTY) != null) ||
+ (elements.get(Constants.CANCEL_PROPERTY_X) != null));
}
1.7 +7 -5
jakarta-struts/src/share/org/apache/struts/action/ActionForm.java
Index: ActionForm.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionForm.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ActionForm.java 2001/02/21 00:35:43 1.6
+++ ActionForm.java 2001/05/11 17:10:58 1.7
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionForm.java,v 1.6
2001/02/21 00:35:43 craigmcc Exp $
- * $Revision: 1.6 $
- * $Date: 2001/02/21 00:35:43 $
+ * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/action/ActionForm.java,v 1.7
2001/05/11 17:10:58 mschachter Exp $
+ * $Revision: 1.7 $
+ * $Date: 2001/05/11 17:10:58 $
*
* ====================================================================
*
@@ -94,7 +94,7 @@
* </p>
*
* @author Craig R. McClanahan
- * @version $Revision: 1.6 $ $Date: 2001/02/21 00:35:43 $
+ * @version $Revision: 1.7 $ $Date: 2001/05/11 17:10:58 $
*/
public abstract class ActionForm implements Serializable {
@@ -134,7 +134,9 @@
* The reasoning behind this is to give form bean developers
* control over the lifecycle of their multipart requests
* through the use of the finish() and/or rollback() methods
- * of MultipartRequestHandler
+ * of MultipartRequestHandler. This method will return
+ * <code>null</code> if this form's enctype is not
+ * "multipart/request-data".
* @see org.apache.struts.upload.MultipartRequestHandler
*/
public MultipartRequestHandler getMultipartRequestHandler() {