You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/08/25 21:35:37 UTC

[3/3] git commit: WW-4024 Allows specify scheme via expression

WW-4024 Allows specify scheme via expression


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

Branch: refs/heads/develop
Commit: 69baf692a44798ed4e1a5ab1e5e0236bba315b39
Parents: 367e3ef
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Aug 25 21:34:54 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Aug 25 21:34:54 2014 +0200

----------------------------------------------------------------------
 .../apache/struts2/components/ServletUrlRenderer.java | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/69baf692/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java b/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
index 04a3509..0b4e13b 100644
--- a/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
+++ b/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
@@ -25,6 +25,7 @@ import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import org.apache.commons.lang3.StringUtils;
@@ -68,7 +69,11 @@ public class ServletUrlRenderer implements UrlRenderer {
         String scheme = urlComponent.getHttpServletRequest().getScheme();
 
         if (urlComponent.getScheme() != null) {
-            scheme = urlComponent.getScheme();
+            ValueStack vs = ActionContext.getContext().getValueStack();
+            scheme = vs.findString(urlComponent.getScheme());
+            if (scheme == null) {
+                scheme = urlComponent.getScheme();
+            }
         }
 
         String result;
@@ -127,6 +132,9 @@ public class ServletUrlRenderer implements UrlRenderer {
         String namespace = formComponent.determineNamespace(formComponent.namespace, formComponent.getStack(), formComponent.request);
         String action;
 
+        ValueStack vs = ActionContext.getContext().getValueStack();
+        String scheme = vs.findString("scheme");
+
         if (formComponent.action != null) {
             action = formComponent.findString(formComponent.action);
         } else {
@@ -161,7 +169,7 @@ public class ServletUrlRenderer implements UrlRenderer {
 
             ActionMapping mapping = new ActionMapping(actionName, namespace, actionMethod, formComponent.parameters);
             String result = urlHelper.buildUrl(formComponent.actionMapper.getUriFromActionMapping(mapping),
-                    formComponent.request, formComponent.response, actionParams, null, formComponent.includeContext, true, false, false);
+                    formComponent.request, formComponent.response, actionParams, scheme, formComponent.includeContext, true, false, false);
             formComponent.addParameter("action", result);
 
             // let's try to get the actual action class and name
@@ -196,7 +204,7 @@ public class ServletUrlRenderer implements UrlRenderer {
                 LOG.warn("No configuration found for the specified action: '" + actionName + "' in namespace: '" + namespace + "'. Form action defaulting to 'action' attribute's literal value.");
             }
 
-            String result = urlHelper.buildUrl(action, formComponent.request, formComponent.response, null, null, formComponent.includeContext, true);
+            String result = urlHelper.buildUrl(action, formComponent.request, formComponent.response, null, scheme, formComponent.includeContext, true);
             formComponent.addParameter("action", result);
 
             // namespace: cut out anything between the start and the last /