A new MVC framework for Java EE 8
Following demands from the community, Java EE 8 is getting a brand new standard MVC framework. Should you care?
A new MVC framework is being developed for Java, as part of Java EE 8. You might find yourself asking “Do we really need another one of those? And do we really need it now?”
JSR 371 vs JSF
What we’re talking about here is the wonderfully named Java Specification Request 371, which will specify a standard Model View Controller framework. But wait – does that mean the old favourite Java EE JSF is to be taken out of action?
No, says Reza Rahman on the Aquarium blog. Unlike component-based Java Server Faces, MVC 1.0 is an action-oriented web framework. Ok, and what does that mean?
As Rahman explains, the market place of the web framework for Java is bustling with life and new projects – from Wicket to Vaadin and others like GWT. And they all find a way to describe themselves as the best on the market. But two main approaches have proven themselves to be the most popular: on the one hand, there’s the component-based solution, represented by JSF (or ASP.NET); on the other there’s the action-based solution (Spring MVC, Struts and ASP.NET MVC).
A community survey at the start of the year ranked an MVC specification as the fifth most-wanted feature for Java 8 EE. The Java EE brethren have therefore decided there is a clear and present need for a new MVC specification. But the new framework is by no means designed to replace JSF – both approaches are equally valid, and can be used to different effect in web applications and different programming communities.
Rahman gives us a sense of the differences using the following graph:
While the component approach strives for maximum automisation of controller/navigation/stage handling (to minimise boilerplate code) while making reusable components available, the action approach focuses more on the HTTP life cycle and the experience of pure web development. JSF is typical for form or workflow-driven applications that often remain behind company firewalls. According to Rahman, open web applications tend to be used more in action-oriented frameworks.
Two routes for Java EE
Beside JSR 371 for MVC 1.0, there’s also going to be JSR 372 in Java EE 8, which will focus on the development of JSF up to version 2.3.
MVC 1.0 will join JSF as a first class peer in Java EE for folks that prefer an action-oriented web framework.
You might still find yourself wondering if this Java EE MVC standard will really manage to make it out there in the world of countless alternatives. Plenty of it will depend on the quality and practical use of the forthcoming MVC 1.0.