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 (&) to (&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 (&) to (&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();