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 :-