{
url = encode(requestCycle, (IListenerInterfaceRequestTarget)requestTarget);
}
if (portletRequest)
{
IListenerInterfaceRequestTarget iliRequestTarget = (IListenerInterfaceRequestTarget)requestTarget;
RequestListenerInterface rli = iliRequestTarget.getRequestListenerInterface();
if (IResourceListener.class.isAssignableFrom(rli.getMethod().getDeclaringClass()) ||
IBehaviorListener.class.isAssignableFrom(rli.getMethod().getDeclaringClass()))
{
url = requestContext.encodeResourceURL(url);
}
else if (IRedirectListener.class.isAssignableFrom(rli.getMethod()
.getDeclaringClass()))
{
if (((WebRequestCycle)requestCycle).getWebRequest().isAjax())
{
// TODO: Probably not all Ajax based redirects need to break out of
// ResourceURL encoding
// Need to find out and/or provide some kind of extension how to indicate
// this
url = ((PortletRequestContext)requestContext).encodeRenderURL(url, true);
}
else
{
url = requestContext.encodeRenderURL(url);
}
}
else
{
PortletRequestContext prc = (PortletRequestContext)requestContext;
boolean forceActionURL = prc.isAjax();
if (forceActionURL)
{
List<IBehavior> behaviors = iliRequestTarget.getTarget().getBehaviors();
for (int i = 0, size = behaviors.size(); i < size; i++)
{
if (AbstractAjaxBehavior.class.isAssignableFrom(behaviors.get(i)
.getClass()))
{