You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by David Chang <da...@yahoo.com> on 2008/05/02 14:48:36 UTC

questions about Matt Raible's web framework comparison

I just started migrating from Spring MVC to Wicket. I
found Matt Raible's interesting slides at this place:

http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-ApacheConUS2007.pdf

Matt's says 

1. regarding Bookmarking and URLs, "Wicket allows
pages/URLs to be mounted". What does this "mounted"
mean? Can somebody provide an example?

2. regarding Post and Redirect, Wicket has "flash"
support. What is "flash" support?

3. regarding Page Decoration, SiteMesh is not
supported or recommended for use with Wicket. This
worries me since I am Sitemesh fan. Can Sitemesh be
FULLY integrated with Wicket? Any Wicket user did
this?

Thank you so much for help!

David


      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

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


Re: questions about Matt Raible's web framework comparison

Posted by Eelco Hillenius <ee...@gmail.com>.
On Fri, May 2, 2008 at 6:48 AM, Johan Compagner <jc...@gmail.com> wrote:
> yes but you also can mount 1 package is 1 go.

Or use a custom encoding strategy.

Eelco

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


Re: questions about Matt Raible's web framework comparison

Posted by Johan Compagner <jc...@gmail.com>.
yes but you also can mount 1 package is 1 go.
But are all pages that you make accessible directly from the outside world?
So they should really all be bookmarkable?

On Fri, May 2, 2008 at 3:44 PM, David Chang <da...@yahoo.com> wrote:

> Johan,
>
> Thank you for your information.
>
> If I want an entire site to have nice URLs, I have to
> MANUALL add the line such as this
>
> application.mount("/login", LoginPage.class)
>
> for each WebPage component of this application?
>
> Regards,
>
> David
>
>
> >you can mount a (bookmarkable) page on an url of your
> choice like:
>
> >application.mount("/login", LoginPage.class)
>
> >then the login page will be shown when somebody does
> http://host/login
>
>
> --- Johan Compagner <jc...@gmail.com> wrote:
>
> > > Matt's says
> > >
> > > 1. regarding Bookmarking and URLs, "Wicket allows
> > > pages/URLs to be mounted". What does this
> > "mounted"
> > > mean? Can somebody provide an example?
> >
> >
> > you can mount a (bookmarkable) page on an url of
> > your choice like:
> >
> > application.mount("/login", LoginPage.class)
> >
> > then the login page will be shown when somebody does
> > http://host/login
> >
> >
> > >
> > > 2. regarding Post and Redirect, Wicket has "flash"
> > > support. What is "flash" support?
> >
> >
> > If you have error or info messages that these are
> > shown over multiply
> > requests
> > So if you do a redirect you dont loose those
> > messages.
> >
> > Wicket just cleans the messages when they are
> > rendered once (when ever that
> > happens)
> >
> >
> > >
> > > 3. regarding Page Decoration, SiteMesh is not
> > > supported or recommended for use with Wicket. This
> > > worries me since I am Sitemesh fan. Can Sitemesh
> > be
> > > FULLY integrated with Wicket? Any Wicket user did
> > > this?
> > >
> >
> > I dont think sitemesh will be a great match for
> > wicket at an time
> > It is really build for different  frameworks.
> > Wicket has for that build in support with Markup
> > Inheritance and Panels
> >
> > I guess if you are in mixed world (wicket and a jsp
> > x framework) you could
> > try to mix that with sitemesh
> >
> > johan
> >
>
>
>
>
>  ____________________________________________________________________________________
> Be a better friend, newshound, and
> know-it-all with Yahoo! Mobile.  Try it now.
> http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: questions about Matt Raible's web framework comparison

Posted by David Chang <da...@yahoo.com>.
Johan,

Thank you for your information. 

If I want an entire site to have nice URLs, I have to
MANUALL add the line such as this

application.mount("/login", LoginPage.class)

for each WebPage component of this application?

Regards,

David


>you can mount a (bookmarkable) page on an url of your
choice like:

>application.mount("/login", LoginPage.class)

>then the login page will be shown when somebody does
http://host/login


--- Johan Compagner <jc...@gmail.com> wrote:

> > Matt's says
> >
> > 1. regarding Bookmarking and URLs, "Wicket allows
> > pages/URLs to be mounted". What does this
> "mounted"
> > mean? Can somebody provide an example?
> 
> 
> you can mount a (bookmarkable) page on an url of
> your choice like:
> 
> application.mount("/login", LoginPage.class)
> 
> then the login page will be shown when somebody does
> http://host/login
> 
> 
> >
> > 2. regarding Post and Redirect, Wicket has "flash"
> > support. What is "flash" support?
> 
> 
> If you have error or info messages that these are 
> shown over multiply
> requests
> So if you do a redirect you dont loose those
> messages.
> 
> Wicket just cleans the messages when they are
> rendered once (when ever that
> happens)
> 
> 
> >
> > 3. regarding Page Decoration, SiteMesh is not
> > supported or recommended for use with Wicket. This
> > worries me since I am Sitemesh fan. Can Sitemesh
> be
> > FULLY integrated with Wicket? Any Wicket user did
> > this?
> >
> 
> I dont think sitemesh will be a great match for
> wicket at an time
> It is really build for different  frameworks.
> Wicket has for that build in support with Markup
> Inheritance and Panels
> 
> I guess if you are in mixed world (wicket and a jsp
> x framework) you could
> try to mix that with sitemesh
> 
> johan
> 



      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

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


Re: questions about Matt Raible's web framework comparison

Posted by Johan Compagner <jc...@gmail.com>.
> Matt's says
>
> 1. regarding Bookmarking and URLs, "Wicket allows
> pages/URLs to be mounted". What does this "mounted"
> mean? Can somebody provide an example?


you can mount a (bookmarkable) page on an url of your choice like:

application.mount("/login", LoginPage.class)

then the login page will be shown when somebody does http://host/login


>
> 2. regarding Post and Redirect, Wicket has "flash"
> support. What is "flash" support?


If you have error or info messages that these are  shown over multiply
requests
So if you do a redirect you dont loose those messages.

Wicket just cleans the messages when they are rendered once (when ever that
happens)


>
> 3. regarding Page Decoration, SiteMesh is not
> supported or recommended for use with Wicket. This
> worries me since I am Sitemesh fan. Can Sitemesh be
> FULLY integrated with Wicket? Any Wicket user did
> this?
>

I dont think sitemesh will be a great match for wicket at an time
It is really build for different  frameworks.
Wicket has for that build in support with Markup Inheritance and Panels

I guess if you are in mixed world (wicket and a jsp x framework) you could
try to mix that with sitemesh

johan

Re: validation: Wicket does the right thing? Or right tool?

Posted by Eelco Hillenius <ee...@gmail.com>.
>  How is your Wicket in Action?

Download the first chapter and see for yourself :-) It's free after
all, and no registration required (I think).

Eelco

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by David Chang <da...@yahoo.com>.
Eelco,

I am reading the PDF version of the book called Enjoy
Web Development with Wicket. Basically it is a good
one with many interesting examples, but these examples
are simple and keep me wondering whether Wicket can
handle other more complicated situations. 

I feel this book does a good tutorial job, but it has
many how-tos and lacks whys (the Wicket design ideas).
I feel switching from JSP+Spring MVC to Wicket it is
crucial to know those whys to fully appreciate or
effectively use Wicket.

How is your Wicket in Action?

Thanks,

David


> I often  have many questions when reading tutorials
with simple
>  examples. I wonder Wicket can do or how do more
>  callenging/complex situations that I can easily
handle
>  with Spring MVC.




--- Eelco Hillenius <ee...@gmail.com> wrote:

> >  Thanks so much for your input! I am still
> seriously
> >  learning Wicket now and will see if I will change
> my
> >  mind.
> >
> >  BTW, what is the best Wicket example website?
> 
> Best to download the Wicket examples distribution or
> check out from
> our subversion repo, so that you can browse through
> the source. And
> don't forget to search through this mailing list
> (archives) and look
> at the WIKI if you're stuck with something.
> 
> > I often  have many questions when reading
> tutorials with simple
> >  examples. I wonder Wicket can do or how do more
> >  callenging/complex situations that I can easily
> handle
> >  with Spring MVC.
> 
> You bet! There may be cases where using Wicket is
> overkill, but it
> certainly beats the hell out of competitors when it
> comes to handling
> complex cases. :-)
> 
> You could download the first chapter of Wicket In
> Action
> (http://www.manning.com/dashorst/) to get our take
> on what exactly
> we're trying to solve (and what isn't solved by
> model 2 frameworks
> like SpringMVC and Struts etc)
> 
> Cheers,
> 
> Eelco
> 
> Eelco
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> users-unsubscribe@wicket.apache.org
> For additional commands, e-mail:
> users-help@wicket.apache.org
> 
> 



      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by Eelco Hillenius <ee...@gmail.com>.
>  Thanks so much for your input! I am still seriously
>  learning Wicket now and will see if I will change my
>  mind.
>
>  BTW, what is the best Wicket example website?

Best to download the Wicket examples distribution or check out from
our subversion repo, so that you can browse through the source. And
don't forget to search through this mailing list (archives) and look
at the WIKI if you're stuck with something.

> I often  have many questions when reading tutorials with simple
>  examples. I wonder Wicket can do or how do more
>  callenging/complex situations that I can easily handle
>  with Spring MVC.

You bet! There may be cases where using Wicket is overkill, but it
certainly beats the hell out of competitors when it comes to handling
complex cases. :-)

You could download the first chapter of Wicket In Action
(http://www.manning.com/dashorst/) to get our take on what exactly
we're trying to solve (and what isn't solved by model 2 frameworks
like SpringMVC and Struts etc)

Cheers,

Eelco

Eelco

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by David Chang <da...@yahoo.com>.
Eelco,

Thanks so much for your input! I am still seriously
learning Wicket now and will see if I will change my
mind.

BTW, what is the best Wicket example website? I often
have many questions when reading tutorials with simple
examples. I wonder Wicket can do or how do more
callenging/complex situations that I can easily handle
with Spring MVC.

Regards,

David

--- Eelco Hillenius <ee...@gmail.com> wrote:

> >  1. It is too much coding. Anybody used Valang in
> >  Spring Module? By using Valang, the validation
> code is
> >  much clean and a lot fewer and you dont need to
> create
> >  a class simply for this simple validation.
> 
> The example you quoted is an example of a reusable
> validator that
> checks the values of two components with each other.
> It's probably a
> rare case to create a reusable validator for it, as
> you can achieve
> the same thing with fewer lines of code by just
> performing the check
> on your form's or button's submit method and then
> setting the error on
> failure. But the choice is yours whether you want
> the validation to be
> reusable (which also means it will be easier to move
> around in your
> code) or whether you just implemented quick and
> dirty (like I often
> do).
> 
> Btw, team members, this comment can be found in
> IFormValidator:
>  * TODO post 1.3: remove validate(form) *make
> IFormValidator extends
> IValidator where IValidatable's
>  * value is form.modelobject and error reports on
> form - that way
> IBehaviorProvider can extend
>  * IValidator
> 
> >  2. Valang covers both client AND server-side
> >  validation. Please note that client-side
> validation is
> >  equally important as server-side's. I feel it is
> a
> >  must for web apps in terms of user experience.
> 
> It is very important that the server-side validation
> is robust, since
> the client-side can be messed with.
> 
> Whether client-side validation is important
> depends... I typically use
> Ajax if I want checking on the fly. Very easy to
> implement using
> Wicket.
> 
> But if you want client-side validation, you can
> create a combined
> validator and behavior (that would contribute the
> JavaScript code to
> the client), e.g. by letting your validator
> implement
> IValidatorAddListener and adding the behavior
> (possibly itself) to the
> component in the onAdded method.
> 
> Would be fun if someone would pick this up and
> extend some of the
> simple validators we have with this.
> 
> >  3. In Valang + Spring MVD, you have all the
> validation
> >  code for a form in one place in stark contrast to
> >  spreading it in "controller" code as in Wicket
> and
> >  mixing validation code with visual manipulation
> code.
> >  Valang's way is much easier to understand and
> >  management.
> 
> I don't know Valang, so I'm not sure what you mean.
> Anyway, you have
> plenty of choices to hide validation code if it
> bothers you. Examples
> are the automatic assignment of validators based on
> Hibernate
> annotations like we're doing in the project I work
> on (done via
> IComponentOnBeforeRenderListener), or custom
> components that assign
> validators to self in their constructors.
> 
> Personally, I think Wicket's solution to validating
> components is
> quite nice as long as the validation is related to
> one component. If
> not (multiple components are non-related), it gets
> more messy, but I
> can't imagine that would be much better in other
> frameworks.
> 
> >  So in terms of elegance, productivity,
> management,
> >  ..., I am not sure Wicket's is right.
> 
> I think it is if you use your creativity and OO
> skills to make it fit
> your style.
> 
> >  Can Wicket provide a better solution?
> >
> >  I would like to share my concern regarding the
> >  Wicket's WebPage, where you put a form's code for
> some
> >  visual aspects, validation, ajax, etc. in one
> place. A
> >  big object. I feel it is too ambitious and it
> looks
> >  like spaghetti code and mixes concerns/modules in
> one
> >  place. Comment?
> 
> Much to debate here, and there are plenty of
> discussions of the pros
> and cons to be found on the internet.
> 
> You don't have to put everything in place; again use
> your OO skills to
> make it more elegant. Furthermore, the fact that so
> much is statically
> typed Java code that is also stateful makes that it
> is easy to
> maintain/ refactor/ navigate/ explore/ debug
> compared to declarative
> frameworks. Declarative frameworks often can result
> in less code, but
> typically only for relatively simple things, and you
> won't get any of
> the advantages of working with statically typed
> code. Also, a
> declarative framework - a DSL in fact - can never be
> as flexible as a
> general-purpose language. Wicket is very flexible
> because of that.
> Whether limitations of declarative frameworks hit
> you of course
> depends on what you're doing with it.
> 
> Good luck,
> 
> Eelco
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> users-unsubscribe@wicket.apache.org
> For additional commands, e-mail:
> users-help@wicket.apache.org
> 
> 



      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by Eelco Hillenius <ee...@gmail.com>.
>  1. It is too much coding. Anybody used Valang in
>  Spring Module? By using Valang, the validation code is
>  much clean and a lot fewer and you dont need to create
>  a class simply for this simple validation.

The example you quoted is an example of a reusable validator that
checks the values of two components with each other. It's probably a
rare case to create a reusable validator for it, as you can achieve
the same thing with fewer lines of code by just performing the check
on your form's or button's submit method and then setting the error on
failure. But the choice is yours whether you want the validation to be
reusable (which also means it will be easier to move around in your
code) or whether you just implemented quick and dirty (like I often
do).

Btw, team members, this comment can be found in IFormValidator:
 * TODO post 1.3: remove validate(form) *make IFormValidator extends
IValidator where IValidatable's
 * value is form.modelobject and error reports on form - that way
IBehaviorProvider can extend
 * IValidator

>  2. Valang covers both client AND server-side
>  validation. Please note that client-side validation is
>  equally important as server-side's. I feel it is a
>  must for web apps in terms of user experience.

It is very important that the server-side validation is robust, since
the client-side can be messed with.

Whether client-side validation is important depends... I typically use
Ajax if I want checking on the fly. Very easy to implement using
Wicket.

But if you want client-side validation, you can create a combined
validator and behavior (that would contribute the JavaScript code to
the client), e.g. by letting your validator implement
IValidatorAddListener and adding the behavior (possibly itself) to the
component in the onAdded method.

Would be fun if someone would pick this up and extend some of the
simple validators we have with this.

>  3. In Valang + Spring MVD, you have all the validation
>  code for a form in one place in stark contrast to
>  spreading it in "controller" code as in Wicket and
>  mixing validation code with visual manipulation code.
>  Valang's way is much easier to understand and
>  management.

I don't know Valang, so I'm not sure what you mean. Anyway, you have
plenty of choices to hide validation code if it bothers you. Examples
are the automatic assignment of validators based on Hibernate
annotations like we're doing in the project I work on (done via
IComponentOnBeforeRenderListener), or custom components that assign
validators to self in their constructors.

Personally, I think Wicket's solution to validating components is
quite nice as long as the validation is related to one component. If
not (multiple components are non-related), it gets more messy, but I
can't imagine that would be much better in other frameworks.

>  So in terms of elegance, productivity, management,
>  ..., I am not sure Wicket's is right.

I think it is if you use your creativity and OO skills to make it fit
your style.

>  Can Wicket provide a better solution?
>
>  I would like to share my concern regarding the
>  Wicket's WebPage, where you put a form's code for some
>  visual aspects, validation, ajax, etc. in one place. A
>  big object. I feel it is too ambitious and it looks
>  like spaghetti code and mixes concerns/modules in one
>  place. Comment?

Much to debate here, and there are plenty of discussions of the pros
and cons to be found on the internet.

You don't have to put everything in place; again use your OO skills to
make it more elegant. Furthermore, the fact that so much is statically
typed Java code that is also stateful makes that it is easy to
maintain/ refactor/ navigate/ explore/ debug compared to declarative
frameworks. Declarative frameworks often can result in less code, but
typically only for relatively simple things, and you won't get any of
the advantages of working with statically typed code. Also, a
declarative framework - a DSL in fact - can never be as flexible as a
general-purpose language. Wicket is very flexible because of that.
Whether limitations of declarative frameworks hit you of course
depends on what you're doing with it.

Good luck,

Eelco

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by John Krasnay <jo...@krasnay.ca>.
On Fri, May 02, 2008 at 09:13:40AM -0700, David Chang wrote:
> 
> >>Weird. Your experience is exactly opposite to mine.
> I found Spring MVC to be hopelessly scattered:
> declarations in XML, controller code in Java, view
> code in templates.
> 
> I dont have any real experience yet. It is mere my
> observation and thinking. I am learning but still
> evaluating. 
> 

I just realized that you may not be clear on the role of FormValidators
in Wicket. A FormValidator is only used when the validation of one field
depends on the value the user entered for another field. The vast
majority of validation uses only field-level validators, which are much
less verbose than FormValidators:

  new TextField("name").setRequired(true);

  new TextField("ccNumber").add(new CreditCardValidator());

My current Wicket application (~35,000 LoC, ported from SpringMVC BTW,
so I speak from experience!) has no more than a handful of
FormValidators.

> One thing I have is really the opposite to your
> experience. I feel this "scatter" is not hopeless; but
> it is a nice separation of concerns.

In this case I think "separation of concerns" is just a nice way of
saying "lack of cohesion/encapsulation". I *want* my validation to
follow my component around, especially when I have a form composed from
several re-usable panels. 

Here's a real-world example. In my app we have a component that captures
credit card info (card number, expiry, etc). It's not a form, just a
Panel with a bunch of form components on it. We re-use this panel in
several very different forms, each of which has various additional
fields.

Each time this panel is re-used, I just drop it into the form like this:

  form.add(new CreditCardPanel(ccModel));

I don't have to add the CreditCardValidator to each one of these forms.
It comes pre-wired in the CreditCardPanel.

> have no objection to puting everything in WebPage, but
> these different concerns should be separated in Wicket
> somehow, code should look clean and good...

Very few Wicket applications put "everything in WebPage". Pages are
usually componentized into various Panels, which in turn can be composed
from other Panels and components. Each of these panels/components can
come with their own validators, as well as with other contributions to
the page such as JS, CSS, etc.

jk

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by Jonathan Locke <jo...@gmail.com>.

auto-generation of anything is a horrible idea.  it's a computer-driven
violation of the DRY principle and you'll get what you deserve.  there are
pretty much always smarter approaches than code generation.

you ought to be able to use wicket to create a constraint driven validation
system that does:

 - client side validation
 - server side validation
 - database validation
 - automatic limits unit testing

we did the last 3 at thoof, and while the client-side validation was not a
goal, it should be possible to integrate and drive a JS validation lib using
the same annotations.


David Chang-5 wrote:
> 
>>>The problem is that with declarative approaches,
> once you step outside of the use-cases envisioned by
> the designer of the declarative system things become
> much more difficult.
> 
> I would like to think practical. How many such
> unexpected situations would happen? Besides, you can
> always code extra validation in Java in controllers
> using things such as Wicket's form validators.
> 
> 
> 
>>>A Wicketer would view it differently: in
> Valang+Spring MVC you have Java code for your
> controller and validation "code" in XML, whereas in 
> Wicket it's all in Java code. That said, it probably
> wouldn't be too hard to implement a FormValidator
> that accepted valang syntax and applied it to a form.
> 
> I really want to see such a thing in place.
> Auto-generation of client-side validation code, IMHO,
> is a much needed thing. At least, Wicket should have
> this capability. It would be nightmare to wrtie
> validation twice: one for the WebPage, one for
> client-side validation.
> 
> 
> 
>>>Weird. Your experience is exactly opposite to mine.
> I found Spring MVC to be hopelessly scattered:
> declarations in XML, controller code in Java, view
> code in templates.
> 
> I dont have any real experience yet. It is mere my
> observation and thinking. I am learning but still
> evaluating. 
> 
> One thing I have is really the opposite to your
> experience. I feel this "scatter" is not hopeless; but
> it is a nice separation of concerns. Think about it. I
> have no objection to puting everything in WebPage, but
> these different concerns should be separated in Wicket
> somehow, code should look clean and good...
> 
> Thank you for sharing your thought and experience,
> which is immensely helpful!
> 
> Regards.
> 
> 
> 
> 
> 
> 
> ============ previous emails =============
> 
> 
> 
> --- John Krasnay <jo...@krasnay.ca> wrote:
> 
>> On Fri, May 02, 2008 at 07:25:01AM -0700, David
>> Chang wrote:
>> > 
>> > I have the bad feeling about this way of
>> validation
>> > 
>> > 1. It is too much coding. Anybody used Valang in
>> > Spring Module? By using Valang, the validation
>> code is
>> > much clean and a lot fewer and you dont need to
>> create
>> > a class simply for this simple validation.
>> > 
>> 
>> I think you'll find the Wicket team has very strong
>> aversion to doing
>> things declaratively rather than with Java code. The
>> problem is that
>> with declarative approaches, once you step outside
>> of the use-cases
>> envisioned by the designer of the declarative system
>> things become much
>> more difficult.
>> 
>> > 2. Valang covers both client AND server-side
>> > validation. Please note that client-side
>> validation is
>> > equally important as server-side's. I feel it is a
>> > must for web apps in terms of user experience.
>> 
>> Wicket doesn't come with a client-side validation
>> framework by default;
>> however, the validators have an opportunity to
>> participate in the
>> component rendering, so it wouldn't be too tough to
>> create your own set
>> of validators that also rendered the appropriate
>> Javascript to do
>> client-side validation.
>> 
>> > 3. In Valang + Spring MVD, you have all the
>> validation
>> > code for a form in one place in stark contrast to
>> > spreading it in "controller" code as in Wicket and
>> > mixing validation code with visual manipulation
>> code.
>> > Valang's way is much easier to understand and
>> > management.
>> 
>> A Wicketer would view it differently: in
>> Valang+Spring MVC you have Java
>> code for your controller and validation "code" in
>> XML, whereas in Wicket
>> it's all in Java code.
>> 
>> That said, it probably wouldn't be too hard to
>> implement a FormValidator
>> that accepted valang syntax and applied it to a
>> form.
>> 
>> > So in terms of elegance, productivity, management,
>> > ..., I am not sure Wicket's is right.
>> > 
>> > Can Wicket provide a better solution? 
>> > 
>> > I would like to share my concern regarding the
>> > Wicket's WebPage, where you put a form's code for
>> some
>> > visual aspects, validation, ajax, etc. in one
>> place. A
>> > big object. I feel it is too ambitious and it
>> looks
>> > like spaghetti code and mixes concerns/modules in
>> one
>> > place. Comment?
>> 
>> Weird. Your experience is exactly opposite to mine.
>> I found Spring MVC
>> to be hopelessly scattered: declarations in XML,
>> controller code in
>> Java, view code in templates. In Wicket, I can
>> create self-contained
>> components, each including all the functionality,
>> markup, validation,
>> JS, etc. it needs to get along in the world. I can
>> then stitch these
>> components together into pages that can be re-jigged
>> and reorganized
>> very quickly.
>> 
>> It feels to me like Wicket allows me to work at a
>> higher level of
>> abstraction, while with Spring MVC I was always down
>> in the weeds
>> dealing directly with the request/response cycle.
>> 
>> jk
>> 
>>
> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail:
>> users-help@wicket.apache.org
>> 
>> 
> 
> 
> 
>      
> ____________________________________________________________________________________
> Be a better friend, newshound, and 
> know-it-all with Yahoo! Mobile.  Try it now. 
> http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Advisory-question-tp17017178p17022968.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: validation: Wicket does the right thing? Or right tool?

Posted by David Chang <da...@yahoo.com>.
>>The problem is that with declarative approaches,
once you step outside of the use-cases envisioned by
the designer of the declarative system things become
much more difficult.

I would like to think practical. How many such
unexpected situations would happen? Besides, you can
always code extra validation in Java in controllers
using things such as Wicket's form validators.



>>A Wicketer would view it differently: in
Valang+Spring MVC you have Java code for your
controller and validation "code" in XML, whereas in 
Wicket it's all in Java code. That said, it probably
wouldn't be too hard to implement a FormValidator
that accepted valang syntax and applied it to a form.

I really want to see such a thing in place.
Auto-generation of client-side validation code, IMHO,
is a much needed thing. At least, Wicket should have
this capability. It would be nightmare to wrtie
validation twice: one for the WebPage, one for
client-side validation.



>>Weird. Your experience is exactly opposite to mine.
I found Spring MVC to be hopelessly scattered:
declarations in XML, controller code in Java, view
code in templates.

I dont have any real experience yet. It is mere my
observation and thinking. I am learning but still
evaluating. 

One thing I have is really the opposite to your
experience. I feel this "scatter" is not hopeless; but
it is a nice separation of concerns. Think about it. I
have no objection to puting everything in WebPage, but
these different concerns should be separated in Wicket
somehow, code should look clean and good...

Thank you for sharing your thought and experience,
which is immensely helpful!

Regards.






============ previous emails =============



--- John Krasnay <jo...@krasnay.ca> wrote:

> On Fri, May 02, 2008 at 07:25:01AM -0700, David
> Chang wrote:
> > 
> > I have the bad feeling about this way of
> validation
> > 
> > 1. It is too much coding. Anybody used Valang in
> > Spring Module? By using Valang, the validation
> code is
> > much clean and a lot fewer and you dont need to
> create
> > a class simply for this simple validation.
> > 
> 
> I think you'll find the Wicket team has very strong
> aversion to doing
> things declaratively rather than with Java code. The
> problem is that
> with declarative approaches, once you step outside
> of the use-cases
> envisioned by the designer of the declarative system
> things become much
> more difficult.
> 
> > 2. Valang covers both client AND server-side
> > validation. Please note that client-side
> validation is
> > equally important as server-side's. I feel it is a
> > must for web apps in terms of user experience.
> 
> Wicket doesn't come with a client-side validation
> framework by default;
> however, the validators have an opportunity to
> participate in the
> component rendering, so it wouldn't be too tough to
> create your own set
> of validators that also rendered the appropriate
> Javascript to do
> client-side validation.
> 
> > 3. In Valang + Spring MVD, you have all the
> validation
> > code for a form in one place in stark contrast to
> > spreading it in "controller" code as in Wicket and
> > mixing validation code with visual manipulation
> code.
> > Valang's way is much easier to understand and
> > management.
> 
> A Wicketer would view it differently: in
> Valang+Spring MVC you have Java
> code for your controller and validation "code" in
> XML, whereas in Wicket
> it's all in Java code.
> 
> That said, it probably wouldn't be too hard to
> implement a FormValidator
> that accepted valang syntax and applied it to a
> form.
> 
> > So in terms of elegance, productivity, management,
> > ..., I am not sure Wicket's is right.
> > 
> > Can Wicket provide a better solution? 
> > 
> > I would like to share my concern regarding the
> > Wicket's WebPage, where you put a form's code for
> some
> > visual aspects, validation, ajax, etc. in one
> place. A
> > big object. I feel it is too ambitious and it
> looks
> > like spaghetti code and mixes concerns/modules in
> one
> > place. Comment?
> 
> Weird. Your experience is exactly opposite to mine.
> I found Spring MVC
> to be hopelessly scattered: declarations in XML,
> controller code in
> Java, view code in templates. In Wicket, I can
> create self-contained
> components, each including all the functionality,
> markup, validation,
> JS, etc. it needs to get along in the world. I can
> then stitch these
> components together into pages that can be re-jigged
> and reorganized
> very quickly.
> 
> It feels to me like Wicket allows me to work at a
> higher level of
> abstraction, while with Spring MVC I was always down
> in the weeds
> dealing directly with the request/response cycle.
> 
> jk
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> users-unsubscribe@wicket.apache.org
> For additional commands, e-mail:
> users-help@wicket.apache.org
> 
> 



      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by John Krasnay <jo...@krasnay.ca>.
On Fri, May 02, 2008 at 07:25:01AM -0700, David Chang wrote:
> 
> I have the bad feeling about this way of validation
> 
> 1. It is too much coding. Anybody used Valang in
> Spring Module? By using Valang, the validation code is
> much clean and a lot fewer and you dont need to create
> a class simply for this simple validation.
> 

I think you'll find the Wicket team has very strong aversion to doing
things declaratively rather than with Java code. The problem is that
with declarative approaches, once you step outside of the use-cases
envisioned by the designer of the declarative system things become much
more difficult.

> 2. Valang covers both client AND server-side
> validation. Please note that client-side validation is
> equally important as server-side's. I feel it is a
> must for web apps in terms of user experience.

Wicket doesn't come with a client-side validation framework by default;
however, the validators have an opportunity to participate in the
component rendering, so it wouldn't be too tough to create your own set
of validators that also rendered the appropriate Javascript to do
client-side validation.

> 3. In Valang + Spring MVD, you have all the validation
> code for a form in one place in stark contrast to
> spreading it in "controller" code as in Wicket and
> mixing validation code with visual manipulation code.
> Valang's way is much easier to understand and
> management.

A Wicketer would view it differently: in Valang+Spring MVC you have Java
code for your controller and validation "code" in XML, whereas in Wicket
it's all in Java code.

That said, it probably wouldn't be too hard to implement a FormValidator
that accepted valang syntax and applied it to a form.

> So in terms of elegance, productivity, management,
> ..., I am not sure Wicket's is right.
> 
> Can Wicket provide a better solution? 
> 
> I would like to share my concern regarding the
> Wicket's WebPage, where you put a form's code for some
> visual aspects, validation, ajax, etc. in one place. A
> big object. I feel it is too ambitious and it looks
> like spaghetti code and mixes concerns/modules in one
> place. Comment?

Weird. Your experience is exactly opposite to mine. I found Spring MVC
to be hopelessly scattered: declarations in XML, controller code in
Java, view code in templates. In Wicket, I can create self-contained
components, each including all the functionality, markup, validation,
JS, etc. it needs to get along in the world. I can then stitch these
components together into pages that can be re-jigged and reorganized
very quickly.

It feels to me like Wicket allows me to work at a higher level of
abstraction, while with Spring MVC I was always down in the weeds
dealing directly with the request/response cycle.

jk

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


Re: validation: Wicket does the right thing? Or right tool?

Posted by Jonathan Locke <jo...@gmail.com>.

don't agree at all of course.  ;-)  and i'm going to give you about the same
stock answer i always give: if you're repeating yourself, stop doing that.

writing redundant form code?  writing redundant validators?  think.  use OO
design patterns.  it's amazing what you can do with objects.  at thoof i
never wrote validation code.  we adopted the sun constraint library more or
less as described in this video:
 
http://londonwicket.org/content/LondonWicket-BeanEditor.mov


David Chang-5 wrote:
> 
> I am migrating from JSP+Valang+...+SpringMVC to Wicket
> and am also still evaluting it. So far so good until I
> saw this instance about using Form Validator to
> validate two related form fields.
> 
> Problem (p81-82, book Enjoy Web Development with
> Wicket, PDF version only):
> 
> Suppose a postage calculation form has two fields that
> accept weight and patron discount code. For a
> particular patron p1, you will never ship a package
> that is weighted more than 50kg. Here is the code from
> the book:
> 
> public class LightValidator extends
> AbstractFormValidator {
>   private TextField weight;
>   private TextField patronCode;
> 
>   public LightValidator(TextField weight, TextField
> patronCode) {
>     this.weight = weight;
>     this.patronCode = patronCode;
>   }
> 
>   public FormComponent[] getDependentFormComponents()
> {
>     return new FormComponent[] { weight, patronCode };
>   }
> 
>   public void validate(Form form) {
>     String patronCodeEntered = (String)
> patronCode.getConvertedInput();
>     if (patronCodeEntered != null) {
>       if (patronCodeEntered.equals("p1")
>           && ((Integer)
> weight.getConvertedInput()).intValue() > 50) {
>         error(weight);
>       }
>     }
>   }
> }
> 
> I have the bad feeling about this way of validation
> 
> 1. It is too much coding. Anybody used Valang in
> Spring Module? By using Valang, the validation code is
> much clean and a lot fewer and you dont need to create
> a class simply for this simple validation.
> 
> 2. Valang covers both client AND server-side
> validation. Please note that client-side validation is
> equally important as server-side's. I feel it is a
> must for web apps in terms of user experience.
> 
> 3. In Valang + Spring MVD, you have all the validation
> code for a form in one place in stark contrast to
> spreading it in "controller" code as in Wicket and
> mixing validation code with visual manipulation code.
> Valang's way is much easier to understand and
> management.
> 
> So in terms of elegance, productivity, management,
> ..., I am not sure Wicket's is right.
> 
> Can Wicket provide a better solution? 
> 
> I would like to share my concern regarding the
> Wicket's WebPage, where you put a form's code for some
> visual aspects, validation, ajax, etc. in one place. A
> big object. I feel it is too ambitious and it looks
> like spaghetti code and mixes concerns/modules in one
> place. Comment?
> 
> 
> I am very new to Wicket and don't know the best ways
> of using Wicket. I love to hear from expereinced
> users/guru here.
> 
> Thanks for your input!
> 
> Warm regards,
> 
> David
> 
> 
>      
> ____________________________________________________________________________________
> Be a better friend, newshound, and 
> know-it-all with Yahoo! Mobile.  Try it now. 
> http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Advisory-question-tp17017178p17022506.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


validation: Wicket does the right thing? Or right tool?

Posted by David Chang <da...@yahoo.com>.
I am migrating from JSP+Valang+...+SpringMVC to Wicket
and am also still evaluting it. So far so good until I
saw this instance about using Form Validator to
validate two related form fields.

Problem (p81-82, book Enjoy Web Development with
Wicket, PDF version only):

Suppose a postage calculation form has two fields that
accept weight and patron discount code. For a
particular patron p1, you will never ship a package
that is weighted more than 50kg. Here is the code from
the book:

public class LightValidator extends
AbstractFormValidator {
  private TextField weight;
  private TextField patronCode;

  public LightValidator(TextField weight, TextField
patronCode) {
    this.weight = weight;
    this.patronCode = patronCode;
  }

  public FormComponent[] getDependentFormComponents()
{
    return new FormComponent[] { weight, patronCode };
  }

  public void validate(Form form) {
    String patronCodeEntered = (String)
patronCode.getConvertedInput();
    if (patronCodeEntered != null) {
      if (patronCodeEntered.equals("p1")
          && ((Integer)
weight.getConvertedInput()).intValue() > 50) {
        error(weight);
      }
    }
  }
}

I have the bad feeling about this way of validation

1. It is too much coding. Anybody used Valang in
Spring Module? By using Valang, the validation code is
much clean and a lot fewer and you dont need to create
a class simply for this simple validation.

2. Valang covers both client AND server-side
validation. Please note that client-side validation is
equally important as server-side's. I feel it is a
must for web apps in terms of user experience.

3. In Valang + Spring MVD, you have all the validation
code for a form in one place in stark contrast to
spreading it in "controller" code as in Wicket and
mixing validation code with visual manipulation code.
Valang's way is much easier to understand and
management.

So in terms of elegance, productivity, management,
..., I am not sure Wicket's is right.

Can Wicket provide a better solution? 

I would like to share my concern regarding the
Wicket's WebPage, where you put a form's code for some
visual aspects, validation, ajax, etc. in one place. A
big object. I feel it is too ambitious and it looks
like spaghetti code and mixes concerns/modules in one
place. Comment?


I am very new to Wicket and don't know the best ways
of using Wicket. I love to hear from expereinced
users/guru here.

Thanks for your input!

Warm regards,

David


      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

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


Re: questions about Matt Raible's web framework comparison

Posted by John Krasnay <jo...@krasnay.ca>.
On Fri, May 02, 2008 at 05:48:36AM -0700, David Chang wrote:
> I just started migrating from Spring MVC to Wicket. I
> found Matt Raible's interesting slides at this place:
> 
> http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-ApacheConUS2007.pdf
> 
> Matt's says 
> 
> 1. regarding Bookmarking and URLs, "Wicket allows
> pages/URLs to be mounted". What does this "mounted"
> mean? Can somebody provide an example?
> 

It means to attach a relative URL to the page, e.g. mounting LoginPage
to "/login" means you can get to the LoginPage via the URL
http://foo.com/myapp/login. If you don't mount the page, Wicket
generates a URL that's not as nice.

> 2. regarding Post and Redirect, Wicket has "flash"
> support. What is "flash" support?
> 

A common pattern is to post a form to one page, then redirect to the
next page. If your post handling code needs to send a message to the
user (e.g. "Your order successfully placed!"), it stores the message in
a well-known place in the session. Then when the subsequent page
renders, it looks for a message in the session. If one is there, it
displays it and removes it from the session so it is only displayed once.

In other words, it's a way to "flash" a message to the user.

> 3. regarding Page Decoration, SiteMesh is not
> supported or recommended for use with Wicket. This
> worries me since I am Sitemesh fan. Can Sitemesh be
> FULLY integrated with Wicket? Any Wicket user did
> this?

Look into Wicket markup inheritance. One think I disliked about Sitemesh
was the limited ability of each page to affect what was going on in the
decoration. With Wicket's markup inheritance, the decoration is just
rendered by your page's superclass, so you can have full programmatic
control over it by calling or overriding methods in the base class. Much
more powerful than Sitemesh, IMHO.

jk

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