/* | |
* Licensed to the Apache Software Foundation (ASF) under one or more | |
* contributor license agreements. See the NOTICE file distributed with | |
* this work for additional information regarding copyright ownership. | |
* The ASF licenses this file to You under the Apache License, Version 2.0 | |
* (the "License"); you may not use this file except in compliance with | |
* the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package org.apache.wicket; | |
import org.apache.wicket.markup.IMarkupResourceStreamProvider; | |
import org.apache.wicket.markup.html.WebPage; | |
import org.apache.wicket.markup.html.form.Form; | |
import org.apache.wicket.markup.html.form.TextField; | |
import org.apache.wicket.model.Model; | |
import org.apache.wicket.request.IRequestParameters; | |
import org.apache.wicket.request.component.IRequestableComponent; | |
import org.apache.wicket.util.resource.IResourceStream; | |
import org.apache.wicket.util.resource.StringResourceStream; | |
/** | |
* Mock Page to maintain the request parameters after the request cycle end | |
*/ | |
public class MockPageParametersAware extends WebPage | |
implements | |
IMarkupResourceStreamProvider, | |
IRequestableComponent | |
{ | |
private static final long serialVersionUID = 1L; | |
private IRequestParameters lastQueryParameters; | |
private IRequestParameters lastPostParameters; | |
private TextField<String> textField; | |
/** */ | |
public MockPageParametersAware() | |
{ | |
Form<Void> form = newForm("form"); | |
textField = new TextField<String>("textfield", Model.of("")); | |
form.add(textField); | |
add(form); | |
} | |
protected Form<Void> newForm(String id) | |
{ | |
return new Form<Void>(id); | |
} | |
@Override | |
protected void onDetach() | |
{ | |
super.onDetach(); | |
lastQueryParameters = getRequest().getQueryParameters(); | |
lastPostParameters = getRequest().getPostParameters(); | |
} | |
/** | |
* @return IRequestParameters query parameters used on last request | |
*/ | |
public IRequestParameters getLastQueryParameters() | |
{ | |
return lastQueryParameters; | |
} | |
/** | |
* @return IRequestParameters POST parameters used on last request | |
*/ | |
public IRequestParameters getLastPostParameters() | |
{ | |
return lastPostParameters; | |
} | |
/** | |
* just an utility | |
*/ | |
public void printParameters() | |
{ | |
for (String n : lastPostParameters.getParameterNames()) | |
{ | |
System.out.println("post: " + n + " : " + lastPostParameters.getParameterValues(n)); | |
} | |
for (String n : lastQueryParameters.getParameterNames()) | |
{ | |
System.out.println("query: " + n + " : " + lastQueryParameters.getParameterValues(n)); | |
} | |
} | |
/** | |
* @return textField | |
*/ | |
public TextField<String> getTextField() | |
{ | |
return textField; | |
} | |
@Override | |
public IResourceStream getMarkupResourceStream(MarkupContainer container, | |
Class<?> containerClass) | |
{ | |
return new StringResourceStream( | |
"<html><body><form wicket:id=\"form\"><input wicket:id=\"textfield\"/></form></body></html>"); | |
} | |
} |