Work on Java EE 8 is well underway, with the final GA version expected to be released next year. Along with CDI 2.0 and JSON Binding 1.0, one of the eagerly anticipated JSRs for this release is MVC 1.0 (JSR 371) – geared at developing a model-view-controller specification for Java EE.
MVC is a pattern that frequently crops in web frameworks, and is most commonly used by HTML-based applications. In the context of MVC, ‘Model’ refers to the app data, ‘View’ to the app’s data presentation, and ‘Controller’ to the part of the system needed for managing input and producing representations.
The move to create a standard around MVC was precipitated by the results of a Java EE community survey, where 60.8% of respondents answered that they believe Java EE should provide support for MVC alongside JSF. In this case, the framework will be defined as action-based, which means that HTTP requests are routed to controllers and turned into actions by application code. It won’t be a replacement for the component-based JSF, but offers and alternate option for building web applications on Java EE.
Working on the back of existing Java EE technologies, MVC 1.0 will leverage CDI and Bean Validation, as well as JSPs and Facelets.
If you’re curious to see it in action, Adam Bien has had a bash at implementing his own simple example based on the ECB idea, and he’s pushed the entire project GitHub using WAR. Note that you’ll need to a dependency to the Java EE 8 MVC Reference Implementation Ozark (see pom) and GlassFish daily build to explore it. Alternatively, you can also experiment by using this script to create a Docker image with GF, Ozark and the JSR 371 samples pre-deployed.