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 /