Repository: struts
Updated Branches:
  refs/heads/feature/use-js-to-support-multiple-buttons [created] 83bdfcb57


Adds onClick handler to support action: prefix


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ca911367
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ca911367
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ca911367

Branch: refs/heads/feature/use-js-to-support-multiple-buttons
Commit: ca911367280eb525461439be6ed17022c89b8169
Parents: bcd61a0
Author: Lukasz Lenart <lukaszlen...@apache.org>
Authored: Thu Mar 13 09:21:29 2014 +0100
Committer: Lukasz Lenart <lukaszlen...@apache.org>
Committed: Thu Mar 13 09:21:29 2014 +0100

----------------------------------------------------------------------
 .../org/apache/struts2/components/FormButton.java  | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/ca911367/core/src/main/java/org/apache/struts2/components/FormButton.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/FormButton.java 
b/core/src/main/java/org/apache/struts2/components/FormButton.java
index 2bd66c3..0671862 100644
--- a/core/src/main/java/org/apache/struts2/components/FormButton.java
+++ b/core/src/main/java/org/apache/struts2/components/FormButton.java
@@ -24,6 +24,7 @@ package org.apache.struts2.components;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 import org.apache.struts2.dispatcher.mapper.ActionMapper;
 import org.apache.struts2.dispatcher.mapper.ActionMapping;
@@ -81,6 +82,7 @@ public abstract class FormButton extends ClosingUIBean {
                 }
                 mapping.setExtension("");
                 name = "action:" + 
actionMapper.getUriFromActionMapping(mapping);
+                applyOnClickHandler();
             } else {
                 name = "method:" + findString(method);
             }
@@ -92,6 +94,21 @@ public abstract class FormButton extends ClosingUIBean {
 
     }
 
+    protected void applyOnClickHandler() {
+        String onClick = (String) parameters.get("onclick");
+        String submitId = (String) parameters.get("id");
+        if (submitId == null) {
+            submitId = RandomStringUtils.randomAlphanumeric(12);
+        }
+        String clickHandler = "submitAction_" + submitId + "(this);";
+        if (onClick != null && !onClick.contains(clickHandler)) {
+            onClick = onClick + "; " + clickHandler;
+        } else {
+            onClick = clickHandler;
+        }
+        parameters.put("onclick", onClick);
+    }
+
     /**
      * Override UIBean's implementation, such that component Html id is 
determined
      * in the following order :-

Reply via email to