dgraham     2003/08/02 13:40:18

  Modified:    src/share/org/apache/struts/util RequestUtils.java
               src/share/org/apache/struts/taglib TagUtils.java
  Log:
  Moved pageURL() to TagUtils.
  
  Revision  Changes    Path
  1.131     +7 -43     
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.130
  retrieving revision 1.131
  diff -u -r1.130 -r1.131
  --- RequestUtils.java 2 Aug 2003 20:35:28 -0000       1.130
  +++ RequestUtils.java 2 Aug 2003 20:40:18 -0000       1.131
  @@ -61,11 +61,8 @@
   
   package org.apache.struts.util;
   
  -import java.lang.reflect.InvocationTargetException;
  -import java.lang.reflect.Method;
   import java.net.MalformedURLException;
   import java.net.URL;
  -import java.net.URLEncoder;
   import java.util.Collections;
   import java.util.Enumeration;
   import java.util.HashMap;
  @@ -1180,44 +1177,11 @@
        *  (<strong>MUST</strong> start with a slash)
        * @return context-relative URL
        * @since Struts 1.1
  +     * @deprecated Use TagUtils.pageURL() instead.  This will be removed
  +     * after Struts 1.2.
        */
       public static String pageURL(HttpServletRequest request, String page) {
  -
  -        StringBuffer sb = new StringBuffer();
  -        ModuleConfig moduleConfig = getRequestModuleConfig(request);
  -        String pagePattern = moduleConfig.getControllerConfig().getPagePattern();
  -        if (pagePattern == null) {
  -            sb.append(moduleConfig.getPrefix());
  -            sb.append(page);
  -        } else {
  -            boolean dollar = false;
  -            for (int i = 0; i < pagePattern.length(); i++) {
  -                char ch = pagePattern.charAt(i);
  -                if (dollar) {
  -                    switch (ch) {
  -                        case 'M' :
  -                            sb.append(moduleConfig.getPrefix());
  -                            break;
  -                        case 'P' :
  -                            sb.append(page);
  -                            break;
  -                        case '$' :
  -                            sb.append('$');
  -                            break;
  -                        default :
  -                            ; // Silently swallow
  -                    }
  -                    dollar = false;
  -                    continue;
  -                } else if (ch == '$') {
  -                    dollar = true;
  -                } else {
  -                    sb.append(ch);
  -                }
  -            }
  -        }
  -        return (sb.toString());
  -
  +        return TagUtils.getInstance().pageURL(request, page);
       }
   
       /**
  
  
  
  1.19      +60 -5     jakarta-struts/src/share/org/apache/struts/taglib/TagUtils.java
  
  Index: TagUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/TagUtils.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- TagUtils.java     2 Aug 2003 20:35:28 -0000       1.18
  +++ TagUtils.java     2 Aug 2003 20:40:18 -0000       1.19
  @@ -438,7 +438,7 @@
   
           } else /* if (page != null) */ {
               url.append(request.getContextPath());
  -            url.append(RequestUtils.pageURL(request, page));
  +            url.append(this.pageURL(request, page));
           }
   
           // Add anchor if requested (replacing any existing anchor)
  @@ -1008,6 +1008,61 @@
               return resources.getMessage(userLocale, key, args);
           }
   
  +    }
  +    
  +    /**
  +     * <p>Return the context-relative URL that corresponds to the specified
  +     * <code>page</code> attribute value, calculated based on the
  +     * <code>pagePattern</code> property of the current module's
  +     * [EMAIL PROTECTED] ModuleConfig}.</p>
  +     *
  +     * @param request The servlet request we are processing
  +     * @param page The module-relative URL to be substituted in
  +     * to the <code>pagePattern</code> pattern for the current module
  +     * (<strong>MUST</strong> start with a slash)
  +     * @return context-relative URL
  +     */
  +    public String pageURL(HttpServletRequest request, String page) {
  +
  +        StringBuffer sb = new StringBuffer();
  +        ModuleConfig moduleConfig = RequestUtils.getRequestModuleConfig(request);
  +        String pagePattern = moduleConfig.getControllerConfig().getPagePattern();
  +        
  +        if (pagePattern == null) {
  +            sb.append(moduleConfig.getPrefix());
  +            sb.append(page);
  +            
  +        } else {
  +            boolean dollar = false;
  +            for (int i = 0; i < pagePattern.length(); i++) {
  +                char ch = pagePattern.charAt(i);
  +                if (dollar) {
  +                    switch (ch) {
  +                        case 'M' :
  +                            sb.append(moduleConfig.getPrefix());
  +                            break;
  +                        case 'P' :
  +                            sb.append(page);
  +                            break;
  +                        case '$' :
  +                            sb.append('$');
  +                            break;
  +                        default :
  +                            ; // Silently swallow
  +                    }
  +                    dollar = false;
  +                    continue;
  +                    
  +                } else if (ch == '$') {
  +                    dollar = true;
  +                    
  +                } else {
  +                    sb.append(ch);
  +                }
  +            }
  +        }
  +        
  +        return sb.toString();
       }
       
       /**
  
  
  

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

Reply via email to