2010-10-08 23 views

Respuesta

6

necesita consultar el subyacente HTTPServletRequest:

public class DummyPage extends WebPage{ 

    private String getRequestUrl(){ 
     // this is a wicket-specific request interface 
     final Request request = getRequest(); 
     if(request instanceof WebRequest){ 
      final WebRequest wr = (WebRequest) request; 
      // but this is the real thing 
      final HttpServletRequest hsr = wr.getHttpServletRequest(); 
      String reqUrl = hsr.getRequestURL().toString(); 
      final String queryString = hsr.getQueryString(); 
      if(queryString != null){ 
       reqUrl += "?" + queryString; 
      } 
      return reqUrl; 
     } 
     return null; 

    } 

} 

Referencia:

1

Según lo que desee, esto puede no ser posible. Hay una breve guía here in the Wicket wiki, pero tiene algunas advertencias, especialmente que solo devuelve una URL relativa en versiones de Wicket después de 1.3. Dicho esto, el método utilizado es

String url = urlFor("pageMapName", MyPage.class, new PageParameters("foo=bar")); 

Si vas con método alternativo de la wiki — la que implica la forma — ser advertido: getPage() es not part of Wicket's public API.

5

La solución de Sean Patrick Floyd parece ser obsoleto para portillo 1,5

Si se utiliza portillo 1.5 (o superior supongo) aquí está la solución:

RequestCycle.get().getUrlRenderer().renderFullUrl(
    Url.parse(urlFor(MyPage.class,null).toString())); 

Referencia:

Getting a url for display

+0

Es bueno saberlo, gracias (+1) –

5

Para obtener la URL de la página actual utilice el WebRequest y UrlRenderer:

Url url = ((WebRequest)RequestCycle.get().getRequest()).getUrl(); 
String fullUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(url); 
1

Esto funciona. Estoy usando wicket 1.5;

nueva URL (RequestCycle.get(). GetUrlRenderer(). RenderFullUrl ( Url.parse (URLFor (HomePage.class, null) .toString()))). getAuthority();

Ejemplo: http://example.com:80/a_long_path/

getAuthproty() devolverá example.com:80

getHost() devolverá example.com.

Cuestiones relacionadas