@rgielen / @ivar_grimstad #Devoxx #JSR371 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController { @GET public void hello() { } } Model
@rgielen / @ivar_grimstad #Devoxx #JSR371 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController { @GET public void hello() { } } Model
@rgielen / @ivar_grimstad #Devoxx #JSR371 Real World - Key Questions Common Problems Solved for Real World? On Par with comparable Servlet-based Frameworks?
@rgielen / @ivar_grimstad #Devoxx #JSR371 Comparable Frameworks Spring MVC around since 2005 “Real World” since 2008 (Spring 2.5 onward) today’s leader in Action-Land Struts 2 around since 2004 (WebWork 2) “Real World” since 2007 (Struts 2.0.9 onward) still widely adopted
@rgielen / @ivar_grimstad #Devoxx #JSR371 Comparable Frameworks Spring MVC around since 2005 “Real World” since 2008 (Spring 2.5 onward) today’s leader in Action-Land Struts 2 around since 2004 (WebWork 2) “Real World” since 2007 (Struts 2.0.9 onward) still widely adopted 3 Years till getting Real!
@rgielen / @ivar_grimstad #Devoxx #JSR371 Let’s relax a bit… JSR 371: „Standing on the Shoulder of Giants“ JAX-RS / Jersey CDI Bean Validation Interceptors Facelets, Thymeleaf, Freemarker, Velocity Adds on Top Lightweight Top Layer Extension Points
@rgielen / @ivar_grimstad #Devoxx #JSR371 Common Real World Needs Scoped DI Controller Decoupling Controller Testability View Technology Flexibility VDL Expressiveness i18n / l10n Form Binding Type Conversion Declarative Validation Message Passing to View Post-Redirect-Get File Upload UI Controls and Theming AJAX Support Decorator Support Cross Cutting Concerns
@rgielen / @ivar_grimstad #Devoxx #JSR371 Controller Decoupling Spring MVC Spring DI Struts 2 Controllers as POJOs Coupling to Servlet API required Coupling to Servlet API supported Model Abstraction Spring MVC Yes No Yes Model Container, Return value Struts 2 Yes No Yes Controller Instance, Value Stack JSR 371 / Ozark Yes No Yes Scoped CDI Beans, Model Container
@rgielen / @ivar_grimstad #Devoxx #JSR371 Controller Testing Support Spring MVC Spring DI Struts 2 Unit Testing Mocking Support Integration Test Framework Spring MVC Easy Easy Spring Test MVC Struts 2 Easy Easy Struts 2 Test Framework JSR 371 / Ozark Easy Easy No / presumably Jersey Test Framework
@rgielen / @ivar_grimstad #Devoxx #JSR371 Wrap-up: State of MVC Lightweight Layer on Top of well established Technologies Easy to extend Addresses most Common Needs Some Gaps and Glitches most can easily addressed by Implementations and Extensions some might be gone in the final Specifications