API / Apache Wicket Interview questions
What is the difference between Apache Wicket, Spring MVC, and JSF?
All three are mature, production-grade Java web frameworks, but they draw the line between "framework responsibility" and "developer responsibility" in different places, which is usually the real deciding factor when choosing between them.
| Apache Wicket | Spring MVC | JSF |
| Pure Java component model, plain HTML templates | Request/controller model, pluggable view engines | Component model with JSF-specific XHTML/Facelets templates |
| No XML configuration required for pages | Configuration via annotations or Java config | Historically XML-heavy, though modern JSF reduces this |
| Statefulness is the natural default | Naturally stateless, REST-friendly | Statefulness built into the JSF lifecycle by design |
| Smaller community than Spring, larger than most niche frameworks | Largest Java web ecosystem and community | Declining adoption relative to the other two in new projects |
Spring MVC tends to win for REST APIs and microservices where statelessness is the goal; Wicket tends to win for complex, stateful, form-heavy internal or enterprise applications where a component-oriented, pure-Java programming model pays off; JSF occupies similar territory to Wicket conceptually but has seen comparatively less new adoption in recent years as Spring's ecosystem has grown to dominate most new Java web projects.
More Related questions...