code: public static AjaxUrlInfo getAjaxUrl(ServletContext servletContext, ServletRequest request, Object nameable)
      {
          ArrayList/*< URLRewriter >*/ rewriters = getRewriters( request );
  
          if ( rewriters != null )
          {
              for ( Iterator i = rewriters.iterator(); i.hasNext(); )
              {
                  URLRewriter rewriter = ( URLRewriter ) i.next();
                  AjaxUrlInfo info = rewriter.getAjaxUrl(servletContext,request,nameable);
                  if (info != null)
                      return info;
              }
          }
          return null;
      }
docs: This method will return two bits of information that are used by components that want run through
  the AJAX facilities.  The <code>AjaxUrlInfo</code> class is returned and specifies this information.  Unlike
  the other URLRewriter method, this is a true Chain of Responsibility (CoR) implementation.  The first URLRewriter
  to return the AjaxUrlInfo object wins and that is returned from this call.  The reason for this is that
  the implementation of the Ajax Context is also a true CoR implementation.  These must match.
  @param servletContext the current ServletContext.
  @param request the current ServletRequest.
  @param nameable this object that is the target of the Ajax request.  Typically it is an INameable.