package org.apache.wicket.examples.requestmapper;
import java.util.Locale;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.IResource;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.util.string.StringValue;
public class MapperDemoResourceReference extends ResourceReference
{
private static final long serialVersionUID = 1L;
public MapperDemoResourceReference()
{
super(new Key(MapperDemoResourceReference.class.getName(), "demoResource", Locale.ENGLISH,
null, null));
}
@Override
public IResource getResource()
{
return new AbstractResource()
{
private static final long serialVersionUID = 1L;
@Override
protected ResourceResponse newResourceResponse(Attributes attributes)
{
ResourceResponse resourceResponse = new ResourceResponse();
PageParameters parameters = attributes.getParameters();
StringValue sheetParam = parameters.get("sheet");
StringValue formatParam = parameters.get("format");
final String responseText = String.format(
"You just printed sheet '%s' in format '%s'.\n\n\nPress browser's back button to go to the examples.",
sheetParam, formatParam);
resourceResponse.setContentType("text/plain");
resourceResponse.setContentLength(responseText.length());
resourceResponse.setWriteCallback(new WriteCallback()
{
@Override
public void writeData(Attributes attributes)
{
attributes.getResponse().write(responseText);
}
});
return resourceResponse;
}
};
}
}