All, Excuse me for the wrong subject of the previous mail. Corrected now,
Best regards, Janno. Janno de Wit ([email protected]) wrote: > Happy new year everybody :), > > Setup: Wicket 1.3.5 > > Situation: > I have a DynamicImageResource subclass that is mounted as a shared > resource. Based on a request parameter it returns a dynamic image. > > Besides that there is a subclass of Image that points the Image > to a ResourceReference with a parameter in a ValueMap that indicates > the image that need to be loaded by the shared image resource. > > What works fine: > Accessing the shared resource under /images?name=blabla.jpg works fine. > > Problem: > When I point an Image to a resource using a ResourceReference with > a ValueMap having "name" it creates a URL for the image like > ../images/name/20090102130806-402427017.jpg/ > > My DynamicImageResource however seems to expect "normal" URI parameters. > It is not able to find the "name" parameter when using the URI as created by > Image. > > Code summary: > > public class ImageResource extends DynamicImageResource { > > ... > public static final Object PARAM_IMAGE_NAME = "name"; > > private ThreadLocal<String> imageName = new ThreadLocal<String>(); > private ExtranetApplication application; > > @Override > public IResourceStream getResourceStream() { > > String imageName = ((String[]) > getParameters().get(PARAM_IMAGE_NAME))[0]; > this.imageName.set( imageName ); > > return super.getResourceStream(); > } > > @Override > protected byte[] getImageData() { > > // get byte[] > byte[] res = .... > return res; > > } > > ... > } > > Application.init() : > > getSharedResources().add( > ImageResource.IMAGE_RESOURCE_NAME, new ImageResource() ); > > mountSharedResource("images", > new > ResourceReference(ImageResource.IMAGE_RESOURCE_NAME).getSharedResourceKey() ); > > > And the usage to fill an Image object: > > public class ImageDisplayer extends Image { > public ImageDisplayer(String id, String image) { > super(id); > > ValueMap parameters = new ValueMap(); > parameters.put( ImageResource.PARAM_IMAGE_NAME, image); > > setImageResourceReference( > new > ResourceReference(ImageResource.IMAGE_RESOURCE_NAME), parameters ); > > } > } > > usage: new ImageDisplayer("id", "imagename"); > > The <image> src-attribute is rendered by the ImageDisplayer as: > ../images/name/20090102130806-402427017.jpg/ > > Causing the ImageResource to be unable to find the name parameter. > > I don't have an explicit URL Encoding Strategy configured. > Is this a bug or a feature, is there a work-around? > > Thanks a lot, > > Janno de Wit > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
