Skip to content

Commit 21f8a86

Browse files
committed
Change a way how to construct url to more wicket'ish
1 parent 9d7011a commit 21f8a86

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

jnpm/src/main/java/org/orienteer/jnpm/cdn/CDNWicketResource.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
1919
import org.apache.wicket.request.cycle.RequestCycle;
2020
import org.apache.wicket.request.http.handler.RedirectRequestHandler;
21+
import org.apache.wicket.request.Url;
22+
import org.apache.wicket.request.UrlRenderer;
2123
import org.apache.wicket.util.string.StringValue;
2224
import org.apache.wicket.util.time.Time;
2325
import org.orienteer.jnpm.ILogger;
@@ -79,14 +81,12 @@ protected ResourceResponse newResourceResponse(Attributes attributes) {
7981
}
8082

8183
if(cdnRequest.shouldRedirect()) {
82-
String redirectUrl = cdnRequest.buildRedirectUrl(versionInfo);
83-
if(redirectUrl != null) {
84-
StringBuilder fullRedirectUrl = new StringBuilder(redirectUrl);
85-
String queryString = buildQueryString(params);
86-
if(queryString != null && !queryString.isEmpty()) {
87-
fullRedirectUrl.append('?').append(queryString);
88-
}
89-
RequestCycle.get().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(fullRedirectUrl.toString()));
84+
String baseRedirectUrl = cdnRequest.buildRedirectUrl(versionInfo);
85+
if(baseRedirectUrl != null) {
86+
Url fullRedirectUrl = buildRedirectUrl(baseRedirectUrl, params);
87+
UrlRenderer urlRenderer = RequestCycle.get().getUrlRenderer();
88+
String renderedRedirectUrl = urlRenderer.renderUrl(fullRedirectUrl);
89+
RequestCycle.get().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(renderedRedirectUrl));
9090
response.setError(HttpServletResponse.SC_FOUND);
9191
return response;
9292
}
@@ -135,15 +135,15 @@ protected String getPathInfo(PageParameters params) {
135135
return sb.toString();
136136
}
137137

138-
protected String buildQueryString(PageParameters params) {
139-
StringBuilder queryString = new StringBuilder();
138+
protected Url buildRedirectUrl(String baseRedirectUrl, PageParameters params) {
139+
Url redirectUrl = Url.parse(baseRedirectUrl);
140140
for(String namedKey : params.getNamedKeys()) {
141-
if(queryString.length() > 0) {
142-
queryString.append('&');
141+
java.util.List<StringValue> values = params.getValues(namedKey);
142+
for(StringValue value : values) {
143+
redirectUrl.addQueryParameter(namedKey, value.toString());
143144
}
144-
queryString.append(namedKey).append('=').append(params.get(namedKey).toString());
145145
}
146-
return queryString.toString();
146+
return redirectUrl;
147147
}
148148

149149
public static void mount(WebApplication app) {

0 commit comments

Comments
 (0)