org.apache.wicket.request.Url类的使用及代码示例

x33g5p2x  于2022-01-31 转载在 其他  
字(10.4k)|赞(0)|评价(0)|浏览(122)

本文整理了Java中org.apache.wicket.request.Url类的一些代码示例,展示了Url类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Url类的具体详情如下:
包路径:org.apache.wicket.request.Url
类名称:Url

Url介绍

[英]Represents the URL to an external resource or internal resource/component.

A url could be:

  • full - consists of an optional protocol/scheme, a host name, an optional port, optional segments and and optional query parameters.

  • non-full:

  • absolute - a url relative to the host name. Such url may escape from the application by using different context path and/or different filter path. For example: /foo/bar

    • relative - a url relative to the current base url. The base url is the url of the currently rendered page. For example: foo/bar, ../foo/bar

Example URLs:

  • http://hostname:1234/foo/bar?a=b#baz - protocol: http, host: hostname, port: 1234, segments: ["foo","bar"], fragment: baz
  • http://hostname:1234/foo/bar?a=b - protocol: http, host: hostname, port: 1234, segments: ["foo","bar"]
  • //hostname:1234/foo/bar?a=b - protocol: null, host: hostname, port: 1234, segments: ["foo","bar"]
  • foo/bar/baz?a=1&b=5 - segments: ["foo","bar","baz"], query parameters: ["a"="1", "b"="5"]
  • foo/bar//baz?=4&6 - segments: ["foo", "bar", "", "baz"], query parameters: [""="4", "6"=""]
  • /foo/bar/ - segments: ["", "foo", "bar", ""]
  • foo/bar// - segments: ["foo", "bar", "", ""]
  • ?a=b - segments: [ ], query parameters: ["a"="b"]
    The Url class takes care of encoding and decoding of the segments and parameters.
    [中]表示指向外部资源或内部资源/组件的URL。
    url可以是:
    *完整-由可选协议/方案、主机名、可选端口、可选段和可选查询参数组成。
    *非满:
    *绝对-相对于主机名的url。这种url可以通过使用不同的上下文路径和/或不同的过滤路径从应用程序中转义。例如:/foo/bar
    *相对-相对于当前基本url的url。基本url是当前呈现页面的url。例如:foo/bar../foo/bar
    URL示例:
  • http://hostname:1234/foo/bar?a=b#baz-协议:http,主机名,端口号:1234,段号:[“foo”,“bar”],段号:baz
  • http://hostname:1234/foo/bar?a=b-协议:http,主机名,端口号:1234,段号:[“foo”,“bar”]
    *//主机名:1234/foo/bar?a=b-协议:空,主机名:主机名,端口号:1234,段号:[“foo”,“bar”]
    *foo/bar/baz?a=1&b=5-段:[“foo”、“bar”、“baz”],查询参数:[“a”=“1”、“b”=“5”]
    *foo/bar//baz=4和6段:[“foo”,“bar”,“baz”],查询参数:[“4”,“6”=”]
    */foo/bar/-segments:[“”,“foo”,“bar”,““”]
    *foo/bar//-段:[“foo”、“bar”、“uide”、“uide]
  • ?a=b-段:[],查询参数:[“a”=“b”]
    Url类负责段和参数的编码和解码。

代码示例

代码示例来源:origin: theonedev/onedev

public static String relativizeUrl(String url) {
  if (Url.parse(url).isFull())
    return url;
  else
    return RequestCycle.get().getUrlRenderer().renderContextRelativeUrl(url);
}

代码示例来源:origin: org.apache.wicket/wicket-core

private static String asName(Url externalUrl)
{
  Args.notNull(externalUrl, "url");
  return externalUrl.toString();
}

代码示例来源:origin: apache/wicket

/**
 * Returns whether the Url is context absolute. Absolute Urls start with a '{@literal /}'.
 *
 * @return <code>true</code> if Url starts with the context path, <code>false</code> otherwise.
 */
public boolean isContextAbsolute()
{
  return !contextRelative && !isFull() && !getSegments().isEmpty() && Strings.isEmpty(getSegments().get(0));
}

代码示例来源:origin: apache/wicket

/**
 * Stringizes this url using the specific {@link StringMode} and url's charset
 * 
 * @param mode
 *            {@link StringMode} that determines how to stringize the url
 * @return stringized url
 */
public String toString(StringMode mode)
{
  return toString(mode, getCharset());
}

代码示例来源:origin: apache/wicket

/**
 * return path for current url in original encoding
 * 
 * @return path string
 */
public String getPath()
{
  return getPath(getCharset());
}

代码示例来源:origin: apache/wicket

@Override
public Url getClientUrl()
{
  Url baseUrl = new Url(url.getSegments(), Collections.<QueryParameter> emptyList());
  baseUrl.setContextRelative(url.isContextRelative());
  return baseUrl;
}

代码示例来源:origin: OrienteerBAP/Orienteer

protected static CharSequence urlFor(ResourceReference ref, ODocument document, String field, String contentType, boolean fullUrl) {
  PageParameters params = new PageParameters();
  params.add("rid", document.getIdentity().toString().substring(1));
  params.add("field", field);
  params.add("v", document.getVersion());
  if(!Strings.isEmpty(contentType)) params.add("type", contentType);
  CharSequence url = RequestCycle.get().urlFor(ref, params);
  if(fullUrl) {
    url = RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse(url));
  }
  return url;
}

代码示例来源:origin: org.opensingular/singular-server-commons

public static String getBaseURL() {
  final RequestCycle requestCycle = RequestCycle.get();
  final Request request = requestCycle.getRequest();
  final String currentPath = request.getUrl().toString();
  String fullUrl = requestCycle.getUrlRenderer().renderFullUrl(request.getUrl());
  if (org.apache.commons.lang3.StringUtils.isNotBlank(currentPath)) {
    final int beginPath = fullUrl.lastIndexOf(currentPath);
    fullUrl = fullUrl.substring(0, beginPath - 1);
  }
  final Optional<String> contextPath = Optional.ofNullable(requestCycle.getRequest().getContextPath());
  final Optional<String> filterPath = Optional.ofNullable(requestCycle.getRequest().getFilterPath());
  return fullUrl + contextPath.orElse("") + filterPath.orElse("");
}

代码示例来源:origin: org.apache.wicket/wicket-core

/**
 * Build value to Origin header based on RequestCycle Url
 *
 * @return Origin header
 */
protected String createOriginHeader(){
  Url url = RequestCycle.get().getRequest().getUrl();
  return url.getProtocol() + "://" +url.getHost() + ":" + url.getPort();
}

代码示例来源:origin: apache/wicket

public CharSequence getBaseUrl() {
  if (baseUrl.get() == null)
  {
    Url _baseUrl = RequestCycle.get().getUrlRenderer().getBaseUrl();
    return Strings.escapeMarkup(_baseUrl.toString());
  }
  return baseUrl.get();
}

代码示例来源:origin: org.wicketstuff/wicketstuff-portlet

private Url encodeSharedResourceUrl(Url url) {
  if (url != null) {
    Request request = RequestCycle.get().getRequest();
    StringBuilder urlBuilder = new StringBuilder();
    urlBuilder.append(request.getContextPath());
    urlBuilder.append(request.getFilterPath());
    urlBuilder.append(PortletFilter.SHARED_RESOURCE_URL_PORTLET_WINDOW_ID_PREFIX);
    urlBuilder.append(Base64.encodeBase64URLSafeString(ThreadPortletContext.getWindowID().getBytes()));
    urlBuilder.append('/');
    urlBuilder.append(url.toString());
    url = Url.parse(urlBuilder.toString());
  }
  return url;
}

代码示例来源:origin: OrienteerBAP/Orienteer

private boolean isActiveItem(IModel<String> urlModel) {
    String currentUrl = RequestCycle.get().getRequest().getUrl().getPath();
    String url = urlModel.getObject();
    return url!=null && currentUrl.equals(url.replaceFirst("^/", ""));
  }
}

代码示例来源:origin: org.artifactory/artifactory-web-common

/**
 * Get the absolute bookmarkable path of a page
 *
 * @param pageClass      Page
 * @param pageParameters Optional page parameters
 * @return Bookmarkable path
 */
public static String absoluteMountPathForPage(Class<? extends Page> pageClass, PageParameters pageParameters) {
  HttpServletRequest req = getHttpServletRequest();
  RequestCycle requestCycle = RequestCycle.get();
  Url url = requestCycle.mapUrlFor(pageClass, pageParameters);
  String renderedUrl = url.toString();
  renderedUrl = Strings.isEmpty(renderedUrl) ? "." : renderedUrl;
  return RequestUtils.toAbsolutePath(HttpUtils.getWebappContextUrl(req),
      requestCycle.getOriginalResponse().encodeURL(renderedUrl));
}

代码示例来源:origin: apache/wicket

@Override
public PageParameters decodePageParameters(final Url url)
{
  PageParameters parameters = new PageParameters();
  int i = 0;
  for (String s : url.getSegments())
  {
    parameters.set(i, s);
    ++i;
  }
  for (QueryParameter p : url.getQueryParameters())
  {
    String parameterName = p.getName();
    if (Strings.isEmpty(parameterName) == false)
    {
      parameters.add(parameterName, p.getValue(), INamedParameters.Type.QUERY_STRING);
    }
  }
  return parameters.isEmpty() ? null : parameters;
}

代码示例来源:origin: apache/wicket

/**
 * @param link
 * @return url for Link
 */
public String urlFor(Link<?> link)
{
  Args.notNull(link, "link");
  Url url = Url.parse(link.urlForListener(new PageParameters()).toString());
  return transform(url).toString();
}

代码示例来源:origin: apache/wicket

/**
 * Extracts {@link PageParameters} from the URL using the given {@link IPageParametersEncoder} .
 * 
 * @param request
 * @param segmentsToSkip
 *            how many URL segments should be skipped because they "belong" to the
 *            {@link IRequestMapper}
 * @param encoder
 * @return PageParameters instance
 */
protected PageParameters extractPageParameters(final Request request, int segmentsToSkip,
  final IPageParametersEncoder encoder)
{
  Args.notNull(request, "request");
  Args.notNull(encoder, "encoder");
  // strip the segments and first query parameter from URL
  Url urlCopy = new Url(request.getUrl());
  while ((segmentsToSkip > 0) && (urlCopy.getSegments().isEmpty() == false))
  {
    urlCopy.getSegments().remove(0);
    --segmentsToSkip;
  }
  if (!urlCopy.getQueryParameters().isEmpty() &&
    Strings.isEmpty(urlCopy.getQueryParameters().get(0).getValue()))
  {
    removeMetaParameter(urlCopy);
  }
  return encoder.decodePageParameters(urlCopy);
}

代码示例来源:origin: apache/wicket

/**
 * Determines whether a URL should be rendered in its full form
 * 
 * @param url
 * @return {@code true} if URL should be rendered in the full form
 */
protected boolean shouldRenderAsFull(final Url url)
{
  Url clientUrl = request.getClientUrl();
  if (!Strings.isEmpty(url.getProtocol()) &&
    !url.getProtocol().equals(clientUrl.getProtocol()))
  {
    return true;
  }
  if (!Strings.isEmpty(url.getHost()) && !url.getHost().equals(clientUrl.getHost()))
  {
    return true;
  }
  if ((url.getPort() != null) && !url.getPort().equals(clientUrl.getPort()))
  {
    return true;
  }
  if (url.isContextAbsolute())
  {
    // do not relativize urls like "/a/b"
    return true;
  }
  return false;
}

代码示例来源:origin: OrienteerBAP/Orienteer

@Override
public void configure(IOLoggerConfiguration configuration) {
  super.configure(configuration);
  if(!Strings.isEmpty(collectorUrl)) {
    Url url = Url.parse(collectorUrl);
    if(Strings.isEmpty(url.getPath())) {
      collectorUrl = collectorUrl+(collectorUrl.endsWith("/")?"":"/")+"rest/ologger";
    }
  }
}

代码示例来源:origin: apache/wicket

@Override
public Url encodePageParameters(PageParameters params)
{
  Args.notNull(params, "params");
  Args.isTrue(params.getIndexedCount() == 0,
    "This encoder does not support indexed page parameters. Specified parameters: %s",
    params);
  Url url = new Url();
  for (PageParameters.NamedPair pair : params.getAllNamed())
  {
    url.getSegments().add(pair.getKey());
    url.getSegments().add(pair.getValue());
  }
  return url;
}

代码示例来源:origin: apache/wicket

final String path = getPath(charset);
  if (Strings.isEmpty(host))
  if (Strings.isEmpty(protocol) == false)
  else if (Strings.isEmpty(protocol) && Strings.isEmpty(host) == false)
  if (port != null && port.equals(getDefaultPortForProtocol(protocol)) == false)
      StringMode.FULL.name() + " mode because it has a `..` segment: " + toString());
final String queryString = getQueryString(charset);
if (queryString != null)
String _fragment = getFragment();
if (Strings.isEmpty(_fragment) == false)

相关文章