Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JSR-371 Model-View-Controller

JSR-371 Model-View-Controller

A nova especificação JSR 371 MVC 1.0 está chegando. Esta especificação nos trará uma maneira alternativa de aplicar MVC ao ecossistema Java /Jakarta EE de maneira baseada em ação.

Nesta apresentação vamos passar pelos fundamentos da especificação , juntamente com uma simples demo.

Daniel Dias

July 07, 2018
Tweet

More Decks by Daniel Dias

Other Decks in Programming

Transcript

  1. 6 / 32 • Framework orientada a ação construida sobre

    as camadas da JAX-RS. • Aproveitar as tecnologias Java EE existentes. MVC 1.0
  2. 7 / 32 • Framework orientada a ação construida sobre

    as camadas da JAX-RS. • Aproveitar as tecnologias Java EE existentes. • Integração com CDI e Bean Validation MVC 1.0
  3. 8 / 32 • Framework orientada a ação construida sobre

    as camadas da JAX-RS. • Aproveitar as tecnologias Java EE existentes. • Integração com CDI e Bean Validation • Fornece suporte interno para JSP e Facelets. MVC 1.0
  4. 9 / 32 • Framework orientada a ação construida sobre

    as camadas da JAX-RS. • Aproveitar as tecnologias Java EE existentes. • Integração com CDI e Bean Validation • Fornece suporte interno para JSP e Facelets. • Contém suporte RestEasy, Jersey e Apache CXF através de modulos. MVC 1.0
  5. 10 / 32 • Framework orientada a ação construida sobre

    as camadas da JAX-RS. • Aproveitar as tecnologias Java EE existentes. • Integração com CDI e Bean Validation • Fornece suporte interno para JSP e Facelets. • Contém suporte RestEasy, Jersey e Apache CXF através de modulos. • Não se destina a substituição do frameworks baseado em componentes como JSF, mas simplesmente oferecer uma alternativa para construção de aplicações web no Java EE. MVC 1.0
  6. 16 / 32 View @Controller @Path("hello") public class HelloController {

    @GET public String getHello() { return "hello.jsp"; } }
  7. 17 / 32 View @Controller @Path("hello") public class HelloController {

    @GET public Response getHello() { return Response.status(OK).entity("hello.jsp").build(); } }
  8. 18 / 32 View @Controller @Path("hello") public class HelloController {

    @View("hello.jsp") @GET public void getHello() { } } • javax.mvc.View
  9. 19 / 32 View @Controller @Path("hello") public class HelloController {

    @GET public Viewable getHello() { return new Viewable("hello.jsp"); } } • Somente na RI - org.mvcspec.ozark.engine.Viewable
  10. 20 / 32 View View Engines suportadas na Ozark(RI) Asciidoc

    .adoc | .asciidoc Freemarker .ftl Groovy .tpl Handlebars .hbs | .handlebars Jade .jade Jetbrick .jetx JSR-223 .groovy | .js | .py Mustache .mustache Pebble .peb Stringtemplate .st Thymeleaf .html Velocity .vm Jtwig .twig.html | .twig
  11. 22 / 32 Model @Controller @Path("hello") public class HelloController {

    @Inject Models model @View("hello.jsp") @GET public void getHello() { model.put("MSG","SouJava"); } } • javax.mvc.Models
  12. 23 / 32 Model - CDI @Named("jug") @RequestScoped @Data public

    class JUG { private String nome; } • javax.inject.Named; • javax.enterprise.context.RequestScoped; • lombok.Data;
  13. 24 / 32 Model - CDI @Controller @Path("hello") public class

    HelloController { @Inject private JUG jug; @View("hello.jsp") @GET public void getHello() { jug.setNome("SouJava"); } }
  14. 25 / 32 Model <%@page contentType=“text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html>

    <head> <title>MVC 1.0 Hello Demo</title> </head> <body> <h1>Hello ${MSG} usando Model</h1> <h1>Hello ${jug.nome} usando CDI</h1> </body> </html> • Suporte apenas JSP e Facelets .
  15. 27 / 32 @ApplicationPath("resource") public class MVCApplication extends Application {

    } • javax.ws.rs.ApplicationPath • javax.ws.rs.core.Application Boot
  16. 28 / 32 - Código ( https://github.com/mvc-spec ) - Issues

    : ( https://github.com/mvc-spec/mvc-spec/issues ) ( https://github.com/mvc-spec/ozark/issues ) - Site ( https://www.mvc-spec.org/ ) - JCP - JSR-371 ( https://jcp.org/en/jsr/detail?id=371 ) - Lista de E-mail ( [email protected] ) - Samples: (https://github.com/mvc-spec/ozark/tree/master/test) (https://github.com/SouJava-Rio/soujava-rio-labs/tree/master/MVC1.0-samples) Adopt-a-JSR
  17. 30 / 32 Referências - https://projects.eclipse.org/proposals/eclipse-ozark - https://www.mvc-spec.org/ - https://jcp.org/en/jsr/detail?id=371

    - https://danieldiasjava.wordpress.com/2018/01/05/jsr-371-mvc-1-0-com-tomcat-tomee/ - https://danieldiasjava.wordpress.com/2018/01/05/jsr-371-mvc-1-0-validacao/ - https://danieldiasjava.wordpress.com/2017/01/25/criando-uma-aplicacao-com-jsr-371mvc-1-0/ - http://blog.triadworks.com.br/mvc-1-0-jsr-para-um-framework-mvc-action-based-na-java-ee-8 - http://blog.caelum.com.br/primeiros-passos-do-mvc-1-0/