Author: jholmes
Date: Mon Aug 13 10:09:16 2007
New Revision: 565422
URL: http://svn.apache.org/viewvc?view=rev&rev=565422
Log:
WW-1948 s:url tag does not provide forceAddSchemeHostAndPort parameter
Modified:
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
Modified:
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
URL:
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java?view=diff&rev=565422&r1=565421&r2=565422
==============================================================================
---
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
(original)
+++
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
Mon Aug 13 10:09:16 2007
@@ -88,6 +88,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 -->
@@ -150,6 +151,7 @@
protected String windowState;
protected String portletUrlType;
protected String anchor;
+ protected boolean forceAddSchemeHostAndPort;
protected String urlIncludeParams;
protected ExtraParameterProvider extraParameterProvider;
@@ -247,14 +249,14 @@
String result;
if (value == null && action != null) {
- if(Dispatcher.getInstance().isPortletSupportActive() &&
PortletActionContext.isPortletRequest()) {
+ if (Dispatcher.getInstance().isPortletSupportActive() &&
PortletActionContext.isPortletRequest()) {
result = PortletUrlHelper.buildUrl(action, namespace,
parameters, portletUrlType, portletMode, windowState);
}
else {
- result = determineActionURL(action, namespace, method, req,
res, parameters, scheme, includeContext, encode, false, escapeAmp);
+ result = determineActionURL(action, namespace, method, req,
res, parameters, scheme, includeContext, encode, forceAddSchemeHostAndPort,
escapeAmp);
}
} else {
- if(Dispatcher.getInstance().isPortletSupportActive() &&
PortletActionContext.isPortletRequest()) {
+ if (Dispatcher.getInstance().isPortletSupportActive() &&
PortletActionContext.isPortletRequest()) {
result = PortletUrlHelper.buildResourceUrl(value, parameters);
}
else {
@@ -265,7 +267,7 @@
if (_value != null && _value.indexOf("?") > 0) {
_value = _value.substring(0, _value.indexOf("?"));
}
- result = UrlHelper.buildUrl(_value, req, res, parameters,
scheme, includeContext, encode, false, escapeAmp);
+ result = UrlHelper.buildUrl(_value, req, res, parameters,
scheme, includeContext, encode, forceAddSchemeHostAndPort, escapeAmp);
}
}
if ( anchor != null && anchor.length() > 0 ) {
@@ -352,6 +354,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/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
URL:
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java?view=diff&rev=565422&r1=565421&r2=565422
==============================================================================
---
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
(original)
+++
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
Mon Aug 13 10:09:16 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/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html
URL:
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html?view=diff&rev=565422&r1=565421&r2=565422
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html
(original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html
Mon Aug 13 10:09:16 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/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java?view=diff&rev=565422&r1=565421&r2=565422
==============================================================================
---
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
(original)
+++
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
Mon Aug 13 10:09:16 2007
@@ -462,6 +462,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();