読者です 読者をやめる 読者になる 読者になる

Wicket で URL 取得

なんかパーマリンクcsv に出したりするのに
URL を作成したりする時があるんだけど、
自前でこんなの書いてた

		PageParameters parameters = new PageParameters();
		parameters.add("id", id);
		HttpServletRequest request = ((ServletWebRequest)component.getRequest()).getHttpServletRequest();
		String scheme = request.getScheme();
		String serverName = request.getServerName();
		int port = request.getServerPort();
		String contextPath = request.getContextPath();
		String servletPath = request.getServletPath();
		StringBuilder url = new StringBuilder(scheme);
		url.append("://");
		url.append(serverName);
		if(port != 80){
			url.append(":");
			url.append(port);
			
		}
		url.append(contextPath);
		url.append(servletPath);
		url.append(component.urlFor(ExamplePage.class,parameters));
		return url.toString();

泥臭くがんばってたんだけど、
今日、こんなの発見しましたって教えてもらった。
org.apache.wicket.protocol.http.RequestUtils#toAbsolutePath(final String relativePagePath)

		PageParameters parameters = new PageParameters();
		parameters.add("id", id);
		return RequestUtils.toAbsolutePath(component.urlFor(ExamplePage.class,parameters).toString());

これだけで済んだ><
中みたら

		if (requestPath.endsWith("/"))
		{
			result = new StringBuffer(requestPath);
		}
		else
		{
			// Remove everything after last slash (but not slash itself)
			result = new StringBuffer(requestPath.substring(0, requestPath.lastIndexOf('/') + 1));
		}

って組立ててたwwww