Author: lukaszlenart Date: Thu May 10 05:54:36 2012 New Revision: 1336486 URL: http://svn.apache.org/viewvc?rev=1336486&view=rev Log: WW-3763 adds setter to inject missing UrlHelper
Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java?rev=1336486&r1=1336485&r2=1336486&view=diff ============================================================================== --- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java (original) +++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/components/PortletUrlRenderer.java Thu May 10 05:54:36 2012 @@ -29,6 +29,7 @@ import org.apache.struts2.dispatcher.map import org.apache.struts2.portlet.context.PortletActionContext; import org.apache.struts2.portlet.util.PortletUrlHelper; import org.apache.struts2.portlet.util.PortletUrlHelperJSR286; +import org.apache.struts2.views.util.UrlHelper; import javax.portlet.PortletMode; import java.io.IOException; @@ -44,7 +45,7 @@ public class PortletUrlRenderer implemen /** * The servlet renderer used when not executing in a portlet context. */ - private UrlRenderer servletRenderer = null; + private ServletUrlRenderer servletRenderer = null; private PortletUrlHelper portletUrlHelper = null; public PortletUrlRenderer() { @@ -62,18 +63,23 @@ public class PortletUrlRenderer implemen servletRenderer.setActionMapper(actionMapper); } + @Inject + public void setUrlHelper(UrlHelper urlHelper) { + servletRenderer.setUrlHelper(urlHelper); + } + /** * {@inheritDoc} */ public void renderUrl(Writer writer, UrlProvider urlComponent) { - if (PortletActionContext.getPortletContext() == null || "none".equalsIgnoreCase(urlComponent.getPortletUrlType())) { + if (PortletActionContext.getPortletContext() == null) { servletRenderer.renderUrl(writer, urlComponent); return; } String result; if (isPortletModeChange(urlComponent,PortletActionContext.getRequest().getPortletMode()) - && StringUtils.isEmpty(urlComponent.getNamespace()) - ) { + && StringUtils.isEmpty(urlComponent.getNamespace())) + { String mode = urlComponent.getPortletMode(); PortletMode portletMode = new PortletMode(mode); String action = urlComponent.getAction(); @@ -126,13 +132,10 @@ public class PortletUrlRenderer implemen } private String createDefaultUrl(UrlProvider urlComponent) { - String result; - ActionInvocation ai = (ActionInvocation) urlComponent.getStack().getContext().get( - ActionContext.ACTION_INVOCATION); + ActionInvocation ai = (ActionInvocation) urlComponent.getStack().getContext().get(ActionContext.ACTION_INVOCATION); String action = ai.getProxy().getActionName(); - result = portletUrlHelper.buildUrl(action, urlComponent.getNamespace(), urlComponent.getMethod(), urlComponent.getParameters(), + return portletUrlHelper.buildUrl(action, urlComponent.getNamespace(), urlComponent.getMethod(), urlComponent.getParameters(), urlComponent.getPortletUrlType(), urlComponent.getPortletMode(), urlComponent.getWindowState()); - return result; } private boolean onlyValueSpecified(UrlProvider urlComponent) { @@ -153,7 +156,7 @@ public class PortletUrlRenderer implemen } String namespace = formComponent.determineNamespace(formComponent.namespace, formComponent.getStack(), formComponent.request); - String action = null; + String action; if (formComponent.action != null) { action = formComponent.findString(formComponent.action); } else {