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.


How MVC works

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.




A Look at Java EE 8 MVC 1.0 in Action

About The Author
- Editor of, focusing on all things Java, JVM, cloud-y, methodical, future-fantastic, and everything in between. Got a piece of news, article or tutorial you'd like to share with your fellow Voxxians? Drop us a line at

1 Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>