Apache Wicket is a very good framework, coming from the spring-boot camp
and picking up the ropes in Apache Wicket.
I think Apache Wicket is well designed, and probably more so than
various frameworks Spring-framework Spring-boot with all its IOC
containers etc.
Spring-framework, its MVC architecture and templates are 'easier' to
learn vs Apache Wicket, those are more conventional in the sense of HTML
/ JSP (Thymeleaf etc) templates where you script in the templates and
put a MVC Java framework around it. However, as the complexity of web
development evolves, the development progress often becomes rather
repetitive with large amount of HTML intersperse codes, and increasingly
the web starts to look more like an assembly of fragments / components.
I'd guess it is a reason Javascript frameworks e.g. Angular, React etc
evolved to meet those needs. But that Javascript 'runs in the browser'
and has 'SEO' implications etc.
Apache Wicket is 'hard to learn' with its architecture and design with
emphasis around reusable Java components an elaborate state tracking to
make stateful pages, is a much needed 'overhaul' to 'conventional'
'scripting in templates' style of design.
The state tracking and page cache and 'model' architecture with forms is
practically 'fully built-in', automated, I created a javabean used in a
form in which only part of the fields are represented in the form, but
that all the fields / instance variables are properly transferred even
though I missed out on passing those in the form as hidden fields. e.g.
the id field of the javabean used as primary key in a DB table.
As I'm intending to run my app possibly in a VPS (cloud servers), I get
pretty paranoid about Apache Wicket's page cache mechanism as a worry is
that a robot can easily load pages and forms many times, create hundreds
to thousands of page versions in the cache eat up available memory and
possibly crash the app. This turn out difficult and I followed the well
written examples using isStateless() to track how each page and its
components are handled
https://nightlies.apache.org/wicket/guide/9.x/single.html#_stateless_pages
(a hint is to log that to a file so that one can examine the log
afterwards to examine which page is stateless and which is not)
After some time, I managed to have a trial app practically run all the
pages stateless including its forms and as I checked, it did not hit the
session for the page cache once all the pages are stateless. But simple
carelessness such as using Link can turn a page into stateful again. The
resorts are to use BookmarkablePagelinks etc, which are stateless.
After some time and refactoring, it turns out it is possible to design
forms into components and as the page creates it unwraps the reusable
components into the full page including the form, fields, feedbacks,
page decorations etc. The components often summarize otherwise a huge
amount of template htmls into perhaps a single component with <div
wickcet:id="item"> styled components which can unwrap into full blown
codes with components such as fields / inputs + html decorations
etc.This is a big win for forms, especially the complicated ones with
lots of fields.
I'm still learning the ropes and it is a well designed and trodden
framework, many things still to visit.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org