You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jh...@apache.org on 2007/08/13 19:15:28 UTC

svn commit: r565429 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/components/ main/java/org/apache/struts2/views/jsp/ site/resources/tags/ test/java/org/apache/struts2/views/jsp/

Author: jholmes
Date: Mon Aug 13 10:15:28 2007
New Revision: 565429

URL: http://svn.apache.org/viewvc?view=rev&rev=565429
Log:
WW-1948 s:url tag does not provide forceAddSchemeHostAndPort parameter

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
    struts/struts2/trunk/core/src/site/resources/tags/url.html
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java?view=diff&rev=565429&r1=565428&r2=565429
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java Mon Aug 13 10:15:28 2007
@@ -56,7 +56,7 @@
 
 	       String result;
 	        if (urlComponent.value == null && urlComponent.action != null) {
-	                result = urlComponent.determineActionURL(urlComponent.action, urlComponent.namespace, urlComponent.method, urlComponent.req, urlComponent.res, urlComponent.parameters, scheme, urlComponent.includeContext, urlComponent.encode, false, urlComponent.escapeAmp);
+	                result = urlComponent.determineActionURL(urlComponent.action, urlComponent.namespace, urlComponent.method, urlComponent.req, urlComponent.res, urlComponent.parameters, scheme, urlComponent.includeContext, urlComponent.encode, urlComponent.forceAddSchemeHostAndPort, urlComponent.escapeAmp);
 	        } else {
 	                String _value = urlComponent.value;
 
@@ -65,7 +65,7 @@
 	                if (_value != null && _value.indexOf("?") > 0) {
 	                    _value = _value.substring(0, _value.indexOf("?"));
 	                }
-	                result = UrlHelper.buildUrl(_value, urlComponent.req, urlComponent.res, urlComponent.parameters, scheme, urlComponent.includeContext, urlComponent.encode, false, urlComponent.escapeAmp);
+	                result = UrlHelper.buildUrl(_value, urlComponent.req, urlComponent.res, urlComponent.parameters, scheme, urlComponent.includeContext, urlComponent.encode, urlComponent.forceAddSchemeHostAndPort, urlComponent.escapeAmp);
 	        }
 	        if ( urlComponent.anchor != null && urlComponent.anchor.length() > 0 ) {
 	            result += '#' + urlComponent.anchor;

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java?view=diff&rev=565429&r1=565428&r2=565429
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/URL.java Mon Aug 13 10:15:28 2007
@@ -84,6 +84,7 @@
  *      <li>portletMode (String) - The resulting portlet mode.</li>
  *      <li>windowState (String) - The resulting portlet window state.</li>
  *      <li>portletUrlType (String) - Specifies if this should be a portlet render or action URL.</li>
+ *      <li>forceAddSchemeHostAndPort (Boolean) - Specifies whether to force the addition of scheme, host and port or not.</li>
  * </ul>
  *
  * <!-- END SNIPPET: params -->
@@ -146,6 +147,7 @@
     protected String windowState;
     protected String portletUrlType;
     protected String anchor;
+    protected boolean forceAddSchemeHostAndPort;
     protected String urlIncludeParams;
     protected ExtraParameterProvider extraParameterProvider;
 	protected UrlRenderer urlRenderer;
@@ -306,6 +308,11 @@
     @StrutsTagAttribute(description="Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not", type="Boolean", defaultValue="true")
     public void setEscapeAmp(boolean escapeAmp) {
         this.escapeAmp = escapeAmp;
+    }
+
+    @StrutsTagAttribute(description="Specifies whether to force the addition of scheme, host and port or not", type="Boolean", defaultValue="false")
+    public void setForceAddSchemeHostAndPort(boolean forceAddSchemeHostAndPort) {
+        this.forceAddSchemeHostAndPort = forceAddSchemeHostAndPort;
     }
 
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java?view=diff&rev=565429&r1=565428&r2=565429
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java Mon Aug 13 10:15:28 2007
@@ -49,6 +49,7 @@
     protected String windowState;
     protected String portletUrlType;
     protected String anchor;
+    protected String forceAddSchemeHostAndPort;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new URL(stack, req, res);
@@ -78,6 +79,9 @@
         if (escapeAmp != null) {
             url.setEscapeAmp(Boolean.valueOf(escapeAmp).booleanValue());
         }
+	if (forceAddSchemeHostAndPort != null) {
+            url.setForceAddSchemeHostAndPort(Boolean.valueOf(forceAddSchemeHostAndPort).booleanValue());
+        }
     }
 
     public void setEncode(String encode) {
@@ -115,17 +119,24 @@
     public void setValue(String value) {
         this.value = value;
     }
+
     public void setPortletMode(String portletMode) {
         this.portletMode = portletMode;
     }
+
     public void setPortletUrlType(String portletUrlType) {
         this.portletUrlType = portletUrlType;
     }
+
     public void setWindowState(String windowState) {
         this.windowState = windowState;
     }
 
     public void setAnchor(String anchor) {
         this.anchor = anchor;
+    }
+
+    public void setForceAddSchemeHostAndPort(String forceAddSchemeHostAndPort) {
+        this.forceAddSchemeHostAndPort = forceAddSchemeHostAndPort;
     }
 }

Modified: struts/struts2/trunk/core/src/site/resources/tags/url.html
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/site/resources/tags/url.html?view=diff&rev=565429&r1=565428&r2=565429
==============================================================================
--- struts/struts2/trunk/core/src/site/resources/tags/url.html (original)
+++ struts/struts2/trunk/core/src/site/resources/tags/url.html Mon Aug 13 10:15:28 2007
@@ -60,6 +60,14 @@
 					<td align="left" valign="top">Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not</td>
 				</tr>
 				<tr>
+					<td align="left" valign="top">forceAddSchemeHostAndPort</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">false</td>
+					<td align="left" valign="top">Boolean</td>
+					<td align="left" valign="top">Specifies whether to force the addition of scheme, host and port or not</td>
+				</tr>
+				<tr>
 					<td align="left" valign="top">id</td>
 					<td align="left" valign="top">false</td>
 					<td align="left" valign="top"></td>

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java?view=diff&rev=565429&r1=565428&r2=565429
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java Mon Aug 13 10:15:28 2007
@@ -488,6 +488,15 @@
         assertEquals("/myapp/company.action", writer.toString());
     }
 
+    public void testForceAddSchemeHostAndPort() throws Exception {
+        tag.setForceAddSchemeHostAndPort("true");
+        tag.setAction("company");
+        tag.doStartTag();
+        tag.doEndTag();
+
+        assertEquals("http://localhost/company.action", writer.toString());
+    }
+
     protected void setUp() throws Exception {
         super.setUp();