Author: ate
Date: Thu Oct  6 16:14:47 2005
New Revision: 306954

URL: http://svn.apache.org/viewcvs?rev=306954&view=rev
Log:
Fixing PB-1: http://issues.apache.org/jira/browse/PB-1
The StrutsPortlet now saves the original Struts URL as a request attribute 
(StrutsPortlet.ORIGIN_URL).
If this hasn't been set as portlet action parameter (yet) it is defaulted to 
the defaultPage portlet parameter.
The StrutsPortletURL.getOriginURL(HttpServletRequest) method now returns this 
request attribute instead of
the portlet (action) parameter.

Modified:
    
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortlet.java
    
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortletURL.java

Modified: 
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortlet.java
URL: 
http://svn.apache.org/viewcvs/portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortlet.java?rev=306954&r1=306953&r2=306954&view=diff
==============================================================================
--- 
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortlet.java
 (original)
+++ 
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortlet.java
 Thu Oct  6 16:14:47 2005
@@ -100,6 +100,7 @@
     private static final Log log = LogFactory.getLog(StrutsPortlet.class);
     public static final String REQUEST_TYPE = 
"org.apache.portals.bridges.struts.request_type";
     public static final String PAGE_URL = 
"org.apache.portals.bridges.struts.page_url";
+    public static final String ORIGIN_URL = 
"org.apache.portals.bridges.struts.origin_url";
     public static final String REDIRECT_PAGE_URL = 
"org.apache.portals.bridges.struts.redirect_page_url";
     public static final String REDIRECT_URL = 
"org.apache.portals.bridges.struts.redirect_url";
     public static final String RENDER_CONTEXT = 
"org.apache.portals.bridges.struts.render_context";
@@ -211,6 +212,16 @@
         return getServletContextProvider().getHttpServletResponse(portlet, 
response);
     }
     
+    protected String getStrutsPageURL(PortletRequest request)
+    {
+        return request.getParameter(StrutsPortletURL.PAGE);
+    }
+    
+    protected String getStrutsOriginURL(PortletRequest request)
+    {
+        return request.getParameter(StrutsPortletURL.ORIGIN);
+    }
+    
     protected String getActionPageParameter(PortletConfig config)
     {
         return config.getInitParameter(PARAM_ACTION_PAGE);
@@ -311,7 +322,7 @@
             }
                                 
             String path = null;
-            String pageURL = request.getParameter(StrutsPortletURL.PAGE);
+            String pageURL = getStrutsPageURL(request);
             if (pageURL == null)
                 path = defaultPage;
             else
@@ -346,11 +357,18 @@
                     {
                         req.setAttribute("javax.portlet.response", response);
                     }
+                    String origin = getStrutsOriginURL(request);
+                    if ( origin == null )
+                    {
+                        origin = defaultPage;
+                    }
+                    request.setAttribute(StrutsPortlet.ORIGIN_URL, origin);    
                
                 }
                 if (path != null)
                 {
                     req.setAttribute(StrutsPortlet.PAGE_URL, path);
                 }
+                
                 req.setAttribute(StrutsPortlet.REQUEST_TYPE, requestType);
                 try
                 {
@@ -371,10 +389,11 @@
                     String renderURL;
                     if (req.getAttribute(StrutsPortlet.ERROR_CONTEXT) != null)
                     {
-                        pageURL = 
request.getParameter(StrutsPortletURL.ORIGIN);
-                        if (pageURL != null)
-                            ((ActionResponse) response).setRenderParameter(
-                                    StrutsPortletURL.PAGE, pageURL);
+                        pageURL = StrutsPortletURL.getOriginURL(req);
+                        if ( pageURL != null )
+                        {    
+                          ((ActionResponse) 
response).setRenderParameter(StrutsPortletURL.PAGE, pageURL);
+                        }
                         if (log.isDebugEnabled())
                             log.debug("action render error context");
                         try

Modified: 
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortletURL.java
URL: 
http://svn.apache.org/viewcvs/portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortletURL.java?rev=306954&r1=306953&r2=306954&view=diff
==============================================================================
--- 
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortletURL.java
 (original)
+++ 
portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts/StrutsPortletURL.java
 Thu Oct  6 16:14:47 2005
@@ -38,7 +38,7 @@
     }
     public static String getOriginURL(ServletRequest request)
     {
-        return request.getParameter(ORIGIN);
+        return (String)request.getAttribute(StrutsPortlet.ORIGIN_URL);
     }
     private static PortletURL createPortletURL(ServletRequest request,
             String pageURL, boolean actionURL)



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to