You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bridges-commits@portals.apache.org by at...@apache.org on 2005/10/07 01:14:57 UTC

svn commit: r306954 - in /portals/bridges/trunk/struts/src/java/org/apache/portals/bridges/struts: StrutsPortlet.java StrutsPortletURL.java

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: bridges-commits-unsubscribe@portals.apache.org
For additional commands, e-mail: bridges-commits-help@portals.apache.org