form {
  onsubmit() {
       try {
       } catch (usernamealreadyexistsexception e) {


On Fri, Sep 25, 2009 at 9:05 AM, Ryan Gravener <> wrote:
> I think you are overcomplicating things.  Validate the users input, if
> two users want the same name within 1 second of each request you
> probably have bigger problems to deal with.  Anyhow,  when submit is
> called, if you get a nonunique exception.  Catch in dao/service and
> throw an exception wicket can handle and present.
> Ryan Gravener
> On Fri, Sep 25, 2009 at 11:58 AM, Paul Huang <> wrote:
>> Hello,
>> I would like to get your suggestion about how to validate a user name input
>> by checking if the name has already been taken (exists in the back-end
>> database); and how to show feedback messages right next to the input field
>> if it has.
>> Typically, when a user registers to a website, he needs to choose a user
>> name, a password, etc. To make sure that the chosen name is unique, one
>> needs to access the back-end database to check if it already exists.
>> My solution right now is to extend "AbstractValidator<String>", and override
>> "onValidate(IValidatable<String> validatable)" to put the database-checking
>> logic in it. But the more I think about it, the more I felt it might be a
>> wrong solution. The problem (I think, not 100% sure) is that
>> "onValidate(IValidatable<String> validatable)" will be called during the
>> form validation process, even if this process goes through, I may still find
>> out later that the user chosen name has been taken when trying to save all
>> the user inputs (name, password, etc) to the database. This happens when
>> another user registers with the same name between the time the validation
>> process finished and the time I start persisting all inputs from the first
>> user to the database,
>> So now I am trying to figure out another solution. Here is the idea: Instead
>> of putting the database-checking logic into the validation process, I simply
>> try to save all the user inputs into the database after receiving them. If
>> an unique key exception happens, I know that the user chosen name has been
>> taken. Now my questions are:
>> 1. where should I put this save-catch-exception logic? Is "Form.onSubmit()"
>> the right place to put it?
>> 2. After I catch an unique key exception. How can I show a feedback message
>> like "This name has already been taken" RIGHT NEXT to the user name input
>> field? (Just like what a typical Wicket Validator does though
>> "FeedbackPanel").
>> I am new to Wicket and your inputs and suggestions are greatly appreciated.
>> Cheers
>> Paul
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

Reply via email to