cedric      2002/07/24 06:01:46

  Modified:    src/test/org/apache/struts/util TestRequestUtils.java
               src/share/org/apache/struts/util RequestUtils.java
  Log:
  Re-enable automatic '/' prefix in forwardURL(...).
  Re-enable associated tests (passed successfully).
  Tiles now catch the forward path before the call to forwardURL(...).
  This should solve again bug 10534.
  
  Revision  Changes    Path
  1.9       +4 -12     
jakarta-struts/src/test/org/apache/struts/util/TestRequestUtils.java
  
  Index: TestRequestUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/test/org/apache/struts/util/TestRequestUtils.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TestRequestUtils.java     12 Jul 2002 09:51:57 -0000      1.8
  +++ TestRequestUtils.java     24 Jul 2002 13:01:46 -0000      1.9
  @@ -591,7 +591,6 @@
   
   
       // Default subapp -- Forward with relative path (non-context-relative)
  -    /* FIXME - comment out until Tiles conundrum is solved
       public void testComputeURL1f() {
   
           request.setPathElements("/myapp", "/action.do", null, null);
  @@ -609,11 +608,9 @@
                        "/myapp/relative.jsp",
                        url);
       }
  -    */
   
   
       // Default subapp -- Forward with relative path (context-relative)
  -    /* FIXME - comment out until Tiles conundrum is solved
       public void testComputeURL1g() {
   
           request.setPathElements("/myapp", "/action.do", null, null);
  @@ -631,7 +628,6 @@
                        "/myapp/relative.jsp",
                        url);
       }
  -    */
   
   
       // Second subapp -- Forward only
  @@ -749,7 +745,6 @@
   
   
       // Second subapp -- Forward with relative path (non-context-relative)
  -    /* FIXME - comment out until Tiles conundrum is solved
       public void testComputeURL2f() {
   
           request.setAttribute(Action.APPLICATION_KEY, appConfig2);
  @@ -768,11 +763,9 @@
                        "/myapp/2/relative.jsp",
                        url);
       }
  -    */
   
   
       // Second subapp -- Forward with relative path (context-relative)
  -    /* FIXME - comment out until Tiles conundrum is solved
       public void testComputeURL2g() {
   
           request.setAttribute(Action.APPLICATION_KEY, appConfig2);
  @@ -791,7 +784,6 @@
                        "/myapp/relative.jsp",
                        url);
       }
  -    */
   
   
       // Add parameters only
  
  
  
  1.49      +13 -14    
jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java
  
  Index: RequestUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- RequestUtils.java 12 Jul 2002 15:47:01 -0000      1.48
  +++ RequestUtils.java 24 Jul 2002 13:01:46 -0000      1.49
  @@ -1172,15 +1172,18 @@
   
       }
   
  -
       /**
        * Return the context-relative URL that corresponds to the specified
        * {@link ForwardConfig}, relative to the module associated
  -     * with the current {@link ApplicationConfig}.
  +     * with the current {@link ApplicationConfig}. The forward path is
  +     * gracefully prefixed with a '/' according to the boolean
  +     *
        *
        * @param request The servlet request we are processing
        * @param forward ForwardConfig to be evaluated
  -     *
  +     * @param slashPrefixed If true, method takes care to prefix the forward path
  +     * URL with a '/' if needed. If false, the '/' is added only if forward
  +     * path is used after another prefix.
        * @since Struts 1.1b2
        */
       public static String forwardURL(HttpServletRequest request,
  @@ -1191,11 +1194,9 @@
           // Handle a ForwardConfig marked as context relative
           StringBuffer sb = new StringBuffer();
           if (forward.getContextRelative()) {
  -            /* Disabled to let Tiles definition names unchanged !
  -            if (!path.startsWith("/")) {
  +            if ( !path.startsWith("/") ) {
                   sb.append("/");
               }
  -            */
               sb.append(path);
               return (sb.toString());
           }
  @@ -1208,11 +1209,10 @@
           if (forwardPattern == null) {
               // Performance optimization for previous default behavior
               sb.append(appConfig.getPrefix());
  -            /* Disabled to let Tiles definition names unchanged !
  +            // smoothly insert a '/' if needed
               if (!path.startsWith("/")) {
                   sb.append("/");
               }
  -            */
               sb.append(path);
           } else {
               boolean dollar = false;
  @@ -1224,11 +1224,10 @@
                           sb.append(appConfig.getPrefix());
                           break;
                       case 'P':
  -                        /* Disabled to let Tiles definition names unchanged !
  +                        // add '/' if needed
                           if (!path.startsWith("/")) {
                               sb.append("/");
                           }
  -                        */
                           sb.append(path);
                           break;
                       case '$':
  
  
  

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

Reply via email to