I am working on updating struts from 1.1beta3 to 1.1 release. In doing this I ran into 
a problem. I tracked the problem down to one method. In the class 
org.apache.struts.action.RequestProcessor the release version of processForwardConfig 
looks like this…

    protected void processForwardConfig(HttpServletRequest request,
                                        HttpServletResponse response,
                                        ForwardConfig forward)
        throws IOException, ServletException {

        if (forward == null) {
            return;
        }
        
        if (log.isDebugEnabled()) {
            log.debug("processForwardConfig(" + forward + ")");
        }
        
        String forwardPath = forward.getPath();
        String uri = null;
        
        // paths not starting with / should be passed through without any processing
        // (ie. they're absolute)
        if (forwardPath.startsWith("/")) {
            uri = RequestUtils.forwardURL(request, forward);    // get module relative 
uri
        } else {
            uri = forwardPath;
        }
        
        if (forward.getRedirect()) {
            // only prepend context path for relative uri
            if (uri.startsWith("/")) {
                uri = request.getContextPath() + uri;
            }
            response.sendRedirect(response.encodeRedirectURL(uri));
            
        } else {
            doForward(uri, request, response);
        }

    }


The 1.1beta3 version of this method looks like….


        protected void processForwardConfig(HttpServletRequest request,
                                        HttpServletResponse response,
                                        ForwardConfig forward)
        throws IOException, ServletException {

        if (forward == null) {
            return;
        }
        
        if (log.isDebugEnabled()) {
            log.debug("processForwardConfig(" + forward + ")");
        }
        
        String uri = RequestUtils.forwardURL(request, forward);
        if (forward.getRedirect()) {
            response.sendRedirect(response.encodeRedirectURL(request.getContextPath() 
+ uri));
        } else {
            doForward(uri, request, response);
        }

    }



I was not using a forward slash ('/') in the path attribute of the forward (see 
below). Because of this I could not get to any of my web pages (and all of my cactus 
tests failed).

The forward in the action mapping look something like…
      <forward name="Success"
        path="xmlcview"
        redirect="false"/>

To use the release version of struts, the forward needs to look like…
      <forward name="Success"
        path="/xmlcview"
        redirect="false"/>

I am wondering if the change to processForwardConfig() is final or if something was 
overlooked and the change needs to be reconsidered? 

Thank you,

-Kyle



------------------------------------------------------------------------------
This message may contain confidential information, and is intended only for the use of 
the individual(s) to whom it is addressed.


==============================================================================


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

Reply via email to