@Luther:

Yes - I'm using the ImageButton it to submit a form.

Thanks for the suggestion to use the modifier. I will try that.

On a side note, I thought that having the images/css/js etc served from
webserver is pretty common and would be supported by wicket without having
to add the names within java code.

I understand the reasoning behind using new ResourceReference as it makes
loading locale specific images very simple. But why should wicket prepend
classpath etc. -- i'm not clear on that. Can't wicket simply ignore the
"src" attribute if ResourceReference is not present and use whatever was
already in the html template? That way I do not have to specify the image
name within the java code and the separation between java and html is clean.

On 5/26/09, Luther Baker <lutherba...@gmail.com> wrote:
>
> @Vasu
>
> Try overriding the "*src*" attribute with a SimpleAttributeModifier :-)
> You'll need to manage your static paths in Java (Constants.IMG_PATH ...
> etc)
> ... but it works as expected:
>
>         final ImageButton submit = new ImageButton("i-thunder");
>         submit.add(new SimpleAttributeModifier("src",
> "img/thunder_medium.jpg"));
>
> *results in*
>
> <input type="image" wicket:id="i-thunder"
> *src=**"img/thunder_medium.jpg"* name="i-thunder" id="i_thunder2f"/>
>
> *instead of*
>
> <input type="image" wicket:id="i-thunder"
>
> src="resources/org.effectiveprogramming.effprog.web.markup.page.Contact/img/thunder_medium_en_US.jpg"
> name="i-thunder" id="i_thunder31"/>
>
>
>
> -Luther
>
>
>
>
> On Tue, May 26, 2009 at 9:13 PM, Luther Baker <lutherba...@gmail.com>
> wrote:
>
> > You may have to look at this case by case ...
> >
> > In this example, what are you doing with the input field? Submitting a
> > form?
> >
> > Were that the case, how about using a raw input tag and moving any wicket
> > logic to the submit handler?
> >
> > -Luther
> >
> >
> >
> >
> >
> > On Tue, May 26, 2009 at 6:02 PM, Vasu Srinivasan <vasy...@gmail.com
> >wrote:
> >
> >> I too have been trying to find the right way about where to put the
> >> resources (image, css, js). I work in an environment where the
> >> images/css/js
> >> are maintained by a separate team and is in apache server as they are
> >> reused
> >> across several apps/projects in different app servers. So putting it as
> >> part
> >> of the application is a no-no (src/main/resources or src/main/webapp
> etc.)
> >> .
> >> It doesn't work that way though -- I tried using a ImageButton without
> >> passing the new ResourceReference()  in the constructor.
> >>
> >> My html is like:
> >>
> >> <input type="image" wicket:id="imageId" src="/images/button.gif" />
> >>
> >> Wicket replaces the html with <input type="image"
> >> src="resources/.....//images/button.gif" /> and obviously does not find
> >> it.
> >>
> >> Is there a clean way out of this?  (ie not prepend resources/... etc)
> >>
> >> Thanks!
> >> Vasya
> >>
> >>
> >> On Tue, May 26, 2009 at 12:40 PM, Luther Baker <lutherba...@gmail.com
> >> >wrote:
> >>
> >> > I like that idea!
> >> >
> >> >
> >> > On Tue, May 26, 2009 at 10:33 AM, Igor Vaynberg <
> >> igor.vaynb...@gmail.com
> >> > >wrote:
> >> >
> >> > > it may be helpful to create <wicket:context> analog of
> <wicket:link>,
> >> > > we already have the framework for getting the path prefix to get to
> >> > > context path.
> >> > >
> >> > > this is of course only useful for application-specific resources as
> >> > > those will not be reused across projects. in our case our SA
> extracts
> >> > > the war and copies everything but WEB-INF to apache so all those
> >> > > static application resources can be served there.
> >> > >
> >> > > -igor
> >> > >
> >> > > On Tue, May 26, 2009 at 2:41 AM, Martijn Dashorst
> >> > > <martijn.dasho...@gmail.com> wrote:
> >> > > > Why wouldn't it be a viable solution? It gives you the opportunity
> >> to
> >> > > > let the resources be served by your container, which should be
> >> > > > speedier than letting wicket handle it (such requests are filtered
> >> > > > through and go to your container).
> >> > > >
> >> > > > The relative paths are just that: relative, and they always map to
> >> the
> >> > > > absolute same resource URI. In fact, they are more stable than
> >> serving
> >> > > > things from your classpath, as those resources are served from the
> >> > > > path /context/resources/...., and if we decide to call that path
> >> > > > /context/foobar/.... all your reasoning about stability goes out
> the
> >> > > > window.
> >> > > >
> >> > > > Martijn
> >> > > >
> >> > > > On Mon, May 25, 2009 at 6:38 PM, Luther Baker <
> >> lutherba...@gmail.com>
> >> > > wrote:
> >> > > >> **On Mon, May 25, 2009 at 2:34 AM, Martijn Dashorst <
> >> > > >> martijn.dasho...@gmail.com> wrote:
> >> > > >>
> >> > > >>> or, if these images and css are for your application, and
> >> application
> >> > > >>> wide (i.e. all pages include them), you could put them in
> >> > > >>> src/main/webapp/......
> >> > > >>>
> >> > > >>> and just <link src="style.css" ... /> them in your markup.
> >> > > >>>
> >> > > >>> Martijn
> >> > > >>>
> >> > > >>
> >> > > >> I'd like to pose a design/theoratical thought here ....
> >> > > >>
> >> > > >> I understand that <wicket:link/> does the right thing for
> resources
> >> > > (like
> >> > > >> stylesheets) kept in the classpath. I love this behavior.
> >> > > >>
> >> > > >> But, as we know, depending on where my browser URL points, the
> >> > > following:
> >> > > >>
> >> > > >>        <link href="css/styles.css" .../>
> >> > > >>
> >> > > >> resolves to different locations. For instance, said stylesheet
> >> > > referenced
> >> > > >> from:
> >> > > >>
> >> > > >>        http://hostname/context/products/wires/24
> >> > > >>
> >> > > >> physically resolves to (mavenized)
> >> > > webapps/*products/wires*/css/styles.css,
> >> > > >> whereas from
> >> > > >>
> >> > > >>        http://hostname/context/people/hr/judy
> >> > > >>
> >> > > >> resolves to webapps/*people/hr/judy*/css/styles.css
> >> > > >>
> >> > > >> (In part, this is due to our effort NOT to hardcode the context
> >> into
> >> > the
> >> > > >> link's href.)
> >> > > >>
> >> > > >> *Traditionally, I solved this one of three ways:*
> >> > > >>
> >> > > >>   1. Manually manage every application URL and every mapped file
> >> and
> >> > > make
> >> > > >>   sure that in all cases the relative path is correct. Ugh! For
> >> > obvious
> >> > > >>   reasons - this technique is not maintainable. Large apps back
> in
> >> the
> >> > > early
> >> > > >>   days of Struts with hundreds of actions and JSPs, this just
> >> wasn't
> >> > > fun.
> >> > > >>   2. JSTL came along and I started to leverage the <c:url tag.
> For
> >> the
> >> > > most
> >> > > >>   part, that was a workable solution - the resulting path was
> >> > 'absolute'
> >> > > but
> >> > > >>   it wasn't hardcoded. Essentially, it gives the framework a
> chance
> >> to
> >> > > work
> >> > > >>   its magic (if it were to change somehow).
> >> > > >>   3. Today, I use the resource method (<wicket:link/>) which
> >> obviates
> >> > > all
> >> > > >>   anxiety by simply letting the framework just manage it.
> >> > > >>
> >> > > >> So to your point Martijn, is using webapp/css and directly
> >> including
> >> > > <link
> >> > > >> href="css/styles.css" .../> really a good - viable, long-term
> >> solution
> >> > > in
> >> > > >> Wicket apps? Understandably maybe today, the default URL mapper
> in
> >> > > Wicket
> >> > > >> uses query strings and not deep or hierarchical urls - but the
> >> > important
> >> > > >> term for me here is "today".
> >> > > >>
> >> > > >> What if, in the future, wicket decides to change the default URL
> >> > mapping
> >> > > >> scheme - maybe become more RESTful. The inertia built up around
> >> legacy
> >> > > apps
> >> > > >> using webapp/css may pose a problem. I don't think this is
> >> premature
> >> > > >> functionality ... I think links and urls are a here a now thing
> and
> >> > that
> >> > > >> building and migrating apps to future versions of frameworks is
> >> hard
> >> > and
> >> > > >> that a loose practice here may come back to bite a developer ...
> ?
> >> > > >>
> >> > > >> Also, I've not yet mounted urls but I assume if I were to mount
> >> URLs -
> >> > > I'd
> >> > > >> have to really manage this webapp/css approach - whereas, the
> >> resource
> >> > > >> approach with <wicket:link/> would just keep humming along.
> >> > > >>
> >> > > >> Some may argue that it isn't really *better* to provide multiple
> >> ways
> >> > to
> >> > > do
> >> > > >> the same thing ... take Tapestry for instance and the technical
> >> > > relevance as
> >> > > >> to where markup files can or cannot reside.
> >> > > >>
> >> > > >> This post is indeed a bit philosophical/theoretical - I've often
> >> > thought
> >> > > >> about this topic and wanted to clarify in my mind that maybe,
> these
> >> > are
> >> > > >> either moot points, ignored concerns, overthinking on my part ...
> >> or
> >> > > just
> >> > > >> not important somehow. As I mentioned, this little detail has
> >> always
> >> > > been a
> >> > > >> pain point in my previous work and I've just been happy as a lark
> >> to
> >> > use
> >> > > the
> >> > > >> <wicket:link/> which protects me from whatever the future
> provides.
> >> > I'm
> >> > > just
> >> > > >> surprised it isn't the suggested best practice or that dropping
> >> files
> >> > > into
> >> > > >> webapp/* is *ill*-advised since it assumes something about how
> >> Wicket
> >> > > works.
> >> > > >>
> >> > > >> Thanks,
> >> > > >>
> >> > > >> -Luther
> >> > > >>
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > Become a Wicket expert, learn from the best:
> >> http://wicketinaction.com
> >> > > > Apache Wicket 1.3.5 is released
> >> > > > Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.
> >> > > >
> >> > > >
> >> ---------------------------------------------------------------------
> >> > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > > > For additional commands, e-mail: users-h...@wicket.apache.org
> >> > > >
> >> > > >
> >> > >
> >> > >
> ---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > > For additional commands, e-mail: users-h...@wicket.apache.org
> >> > >
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> Regards,
> >> Vasu Srinivasan
> >>
> >
> >
>



-- 
Regards,
Vasu Srinivasan

Reply via email to