Yes it is!  Thanks for sharing

> On Apr 14, 2025, at 5:03 PM, andrew goh <gohand...@yahoo.com.INVALID> wrote:
> 
> 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
> 


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

Reply via email to