Firstly, thank you very much for your advice, it helps to a certain extend,
but it also raises new questions.

Unfortunately, there's only one way to determine whether a zip-file contains
an installation manual. Since the zip-file is on another server (where the
nexus repository resides), I have to read it from an InputStream. If there
isn't an installation manual, this reading can take up to 10 seconds.
Initially - when there's not a user entry yet, I can disable the
download-button. But once an application code is entered, I only render meta
information from all the zip-file versions, so the user can pick a desired
version (usually the most recent build). Only when the form is submitted, or
the new download button pressed, the corresponding zip-file is read, and
only then I can determine whether it contains an installation manual. But I
have to enable the button if there is a user entry. That can be a very
disapointing user experience. He/she starts the appication, the button is
disabled. He/she then enters an application code, en presses the now enabled
button, only to find out that there isn't an installation manual...

One question that comes to mind is: is my use case so exceptional? A button
for a resource is pressed, all I want is a nice feedback in case a resource
isn't available...
Personally, I'm not a great fan of disabling or 'invisibling' buttons. I
adhere to the five-year-old-boy-philosophy concerning buttons: you should
/allways/ be able to press them, that's what buttons are for.

Your alternative (using the RestartResponseException) solves the 'white
screen-problem', but there are a few drawbacks:
- The URL of my application after pressing the button changes from
http://localhost:9081/deploy/ to
http://localhost:9081/deploy/?wicket:interface=:3:deploytabs:panel:deployForm:downloadinstallationmanual::IResourceListener::.
I really like Wicket, but this is so annoying. Who wants this? I just want
my original url back - and yes, I read all the posts on mount strategies.
- What's worse, the user has entered an application code that generates
other field values (like a dropdownlists for the versions). When the page is
reloaded after a RestartResponseException, I want to initialize it with the
afore entered data. I managed to do that using PageParameters (or the
Session), but in that case the refresh button will always generate a
'prefilled' page, with the values of the lat entered application code.

Regards, Hans Friederichs

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-Handle-ResourceStreamNotFoundException-tp3749331p3752826.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to